Method and apparatus for reproducing content data, non-transitory computer-readable medium for causing the apparatus to carry out the method, and non-transitory content recording medium for causing the apparatus to carry out the method

ABSTRACT

Content reproducing apparatus includes a synchronization control section that transmits synchronization control signals including information specifying a program to a program executing section which generates bitmap data of an image to be overlaid with content data and stores the bitmap data in a plurality of buffer memories. The synchronization control section also synchronizes reproduction of content data with (i) generation of bitmap data in the program executing section, and (ii) output of stored bitmap data by an output control section on the basis of respective first and second timing information indicative of first and second time points in a time period during which content data is reproduced. A method for reproducing content utilizing the content reproducing apparatus, a non-transitory content recording medium for causing the apparatus to carry out the method, and a non-transitory, computer-readable medium storing a control program for causing the content reproducing apparatus to practice the method also are provided.

This application is a continuation of copending U.S. patent applicationSer. No. 10/575,431, entitled by Jiro Kiyama, Hideaki Kizuki, andKatsushi Ohizumi, the same inventors as the inventors of thiscontinuation application, filed on 10 Apr. 2006, which applicationclaims the benefit of International Patent Application No.PCT/JP2004/014954, filed 8 Oct. 2004; and Japanese Patent ApplicationsNos. JP 2003-352932, filed on 10 Oct. 2003; JP 2004/205234, filed 12Jul. 2004; JP 2004/231734, filed 6 Aug. 2004; JP 2004/232677, filed 9Aug. 2004; JP 2004/264721, filed 10 Sep. 2004; JP 2004/290771, filed 1Oct. 2004 and JP 2004/296073, filed on 8 Oct. 2004.

TECHNICAL FIELD

The present invention relates to (i) a reproducing apparatus usingcomputer software for controlling video reproduction (playback), (ii) amethod for controlling the reproducing apparatus, (iii) a contentrecording medium, (iv) a data structure, (v) a control program, and (vi)a computer-readable recording medium storing the control program.

BACKGROUND ART

In recent years, for attainment of higher interactivity, AV (audiovisual) devices have begun to adopt a platform in which a versatileprogram language can be executed. A typical example thereof is the MHP(Multimedia Home Platform) adopting Java® language. See JapaneseUnexamined Patent Publication Tokukai 2001-103383 (published on Apr. 13,2001; hereinafter, referred to as “Patent document 1”), for example.

Described in Patent document 1 is a television display apparatus that isso made as to have (i) various control functions, and (ii) an interfacewhich is simple for a user. Specifically, the television displayapparatus includes: (i) a memory for storing a plurality of controlimages, and for continuously storing major files; (ii) an event selectorfor correlating an event with selected one of the control images; (iii)an action selector for correlating an action with the selected controlimage; (iv) a display section for detecting the event and fordisplaying, in accordance with the detected event, the selected controlimage during a predetermined period such that the selected control imageis overlaid with a currently viewed television service; (v) a commandsection for starting the action in response to a control commandsupplied by an input apparatus during the predetermined period. Thecommand section causes display of a content of a major filecorresponding to each major image displayed in response to the majorcommand supplied by the input apparatus during the predetermined period.The content of the major file is so displayed as to be overlaid with thecurrently viewed television service.

The present invention and Patent document 1 are similar in that acomputer program language such as Java® is used for the control of thevideo reproduction. However, Patent document 1 targets for broadcasting,whereas the present invention targets for a disk and the like. Moreover,Patent document 1 does not disclose the following major features (1)through (3) of the present invention:

(1) an apparatus structure and a data structure, each of which makes itpossible to control, at a video frame precision, start and end of aprocess to be done by the program;

(2) an apparatus structure and a data structure, each of which allowsfor time specifying (designation) reproduction and a resuming process;and

(3) an apparatus structure and a data structure, each of which makes itpossible to avoid overhead occurring due to execution of the program.

FIG. 35 is a function block diagram schematically illustrating astructure of a conventional AV device having the versatile programlanguage executing platform. In cases where such a versatile programlanguage executing platform is adopted in the AV device as shown in FIG.35, the AV device is made up of a program executing section 101, a videoreproducing section 102 for decoding video data, and a combining section103. The combining section 103 overlays respective outputs of theprogram executing section 101 and the video reproducing section 102 witheach other. Generally, in view of cost and realtimeness, the videoreproducing section 102 is hardware installed in the AV device.

However, it is difficult for such a conventional AV device to startdisplaying, from a specific video frame in time-sequential videoreproduction, a graphics and an animation each generated by using theprogram, and to end the displaying at a specific video frame therein.This is because a program using an advanced computer language(high-level language) operates slowly in general. Especially, a programusing Java® language is executed on a virtual machine. Moreover, agarbage collection process is carried out so as to free a used memory.This makes it difficult to secure real-time processing. Further, forsynchronization of the graphics with the video at each frame, pollingneeds to be carried out at time shorter than the frame rate.Accordingly, the overhead due to the program becomes large. Further,software is required to check a clock value, for the sake of startingthe display of the graphics from a specific timing and ending thedisplay at a specific timing in the video reproduction. Accordingly, theoverhead becomes large in the processing. This makes it difficult thateach timing at which the display of the graphics is started and endedcorresponds to the specific timing at each frame in the videoreproduction. This is inefficient in terms of the processing.

Further, when starting the reproduction from an arbitrary time point ofthe video, it is difficult for the conventional AV device to display thegraphics on a target time point such that the graphics are accuratelyoverlaid with the video. A reason of this is as follows. That is, eachof timings of appearance (display) and disappearance (non-display) ofthe graphics is controlled in accordance with a value found by pollingthe clock during the video reproduction. Therefore, when starting thereproduction from the target time point, a clock change having occurredin starting the reproduction needs to be produced again. In other words,the display of the graphics at the target time point requires timecorresponding to a period of time from the beginning of the video to thetarget reproduction start time.

Further, the program executing section 101 controls the videoreproducing section 102 of the conventional AV device in accordance witha specified program. Accordingly, the following problems (1) and (2)arise: (1) it takes longer time to start the video reproduction ascompared with the time taken to reproduce conventional DVD Video with nouse of Java® language; (2) a response to a user manipulation (such as“Jump to the next chapter”) is slow. The problem (1) occurs as follows.That is, the program has a description for controlling the start ofreproducing the video data. Therefore, until the program is launched andexecuted up to the description for controlling the start of reproducingthe video data, no instruction for controlling the start of reproducingthe video data is sent to the video reproducing section 102. In otherwords, the problem (1) occurs due to the overhead caused by the programexecuting section 101. On the other hand, the problem (2) occurs due tosuch an overhead that: the program executing section 101 receives theuser manipulation, and then the program converts the user manipulationinto a reproduction control instruction to be supplied to the videoreproducing section 102, and then the reproduction is carried out.Further, in cases where the aforementioned garbage collection process iscarried out during the reproduction start process and the usermanipulation interpreting process, the response to the user manipulationis possibly further delayed.

Further, the conventional AV device does not allow for the “resuming”process currently realized in the DVD. The wording “resuming (resume)”refers to a function for resuming reproduction of a content from a pointat which previous reproduction thereof was suspended due to menu readoutcarried out by the user. The reproduction of the content is resumed whenthe user carries out manipulation of returning from the menu to theprevious reproduction condition.

Further, the conventional AV device does not take into considerationthat contents respectively provided by a plurality of content providersare stored in the same recording medium. Consider an example in whichproviders A and B provide contents in one optical disk. In this case,video data of the provider B needs to be prevented from beingintentionally reproduced without approval (authorization) by a programof the provider A, or from being reproduced without approval by a bug ofthe program thereof. However, the conventional AV device does notprovide a structure for dealing with such a case.

The present invention is made in light of the problems, and its firstobject is to provide (i) a reproducing apparatus which can effectivelyexecute a program in synchronism with reproduction of AV data or thelike; (ii) a method for controlling the reproduction apparatus; (iii) acontent recording medium; (iv) a data structure; (v) a control program;and (vi) a computer-readable recording medium storing the controlprogram. Its second object is to provide a reproducing apparatus, amethod for controlling the reproducing apparatus, a content recordingmedium, a data structure, a control program, and a computer-readablerecording medium storing the control program, whereby unauthorizedreproduction (playback) can be prevented.

DISCLOSURE OF INVENTION

To achieve the object, a reproducing apparatus according to the presentinvention includes: (a) data acquiring means for acquiring content dataand synchronization timing information items; (b) clock generating meansfor generating a clock signal; (c) decoding means for converting, inaccordance with the clock signal, the content data into reproductiondata for reproduction output; (d) synchronization control means fortransmitting synchronization control signals to synchronizationprocessing means, in accordance with the clock signal, at timingsspecified by timing specifying information items included in thesynchronization timing information items, respectively; and (e) thesynchronization processing means for carrying out a process inaccordance with each of the synchronization control signals receivedfrom the synchronization control means.

Further, a method, according to the present invention, for controlling areproducing apparatus including data acquiring means, decoding means,and synchronization processing means, includes the steps of: (a) causingthe data acquiring means to acquire content data and synchronizationtiming information; (b) causing the decoding means to (i) convert, inaccordance with the clock signal, the content data into reproductiondata for reproduction output, and (ii) send a synchronization controlsignal to the synchronization processing means in accordance with theclock signal at a timing specified by timing specifying informationincluded in the synchronization timing information; and (c) causing thesynchronization processing means to carry out a process in accordancewith the synchronization control signal.

The above arrangements make it possible to supply, to thesynchronization processing means, the synchronization control signal(trigger) that specifies the timing at which the process is carried out.The supply of the synchronization control signal is carried out insynchronization with the reproduction process that the decoding meanscarries out with respect to the content data. Here, examples of the“process” to be carried out by the synchronization processing meansinclude: a process of controlling data outputting, a process ofexecuting a program, and the like.

This makes it easier to (i) carry out a process to be carried out insynchronization with the reproduction process of the content data, andto be carried out concurrently with the supply of the content data; and(ii) add a process to be carried out in synchronization with thereproduction process of the content data, and to be carried out afterthe supply of the content data. Further, the stream synchronizationprocessing means does not need to check the reproduction clock of thedecoding means, so that no load is imposed for the synchronization onthe synchronization processing means. This makes it possible to flexiblycreate a content.

Further, a reproducing apparatus according to the present inventionincludes: data acquiring means for acquiring content data and asynchronization executing program; program executing means for executingthe synchronization executing program; clock generating means forgenerating a clock signal; decoding means for converting, in accordancewith the clock signal, the content data into reproduction data forreproduction output; synchronization control means for transmitting asynchronization control signal to the program executing means at apredetermined timing in accordance with the clock signal; and inputmeans for receiving reproduction control manipulation from outside, andfor converting the reproduction control manipulation into reproductioncontrol information, the decoding means being controlled in accordancewith the reproduction control information sent from the input means, theprogram executing means executing the synchronization executing programin accordance with at least the synchronization control signal sent fromthe synchronization control means.

Further, a method, according to the present invention, for controlling areproducing apparatus including data acquiring means, program executingmeans, clock generating means, decoding means, synchronization controlmeans, and input means, includes the steps of: (A) causing the dataacquiring means to acquire content data and a synchronization executingprogram; (B) causing the program executing means to execute thesynchronization executing program; (C) causing the clock generatingmeans to generate a clock signal; (D) causing the decoding means toconvert, in accordance with the clock signal, the content data intoreproduction data for reproduction output; (E) causing thesynchronization control means to transmit a synchronization controlsignal to the program executing means at a predetermined timing inaccordance with the clock signal; and (F) causing the input means to (i)receive reproduction control manipulation from outside, and (ii) convertthe reproduction control manipulation into reproduction controlinformation, in the step (D), the decoding means being controlled inaccordance with the reproduction control information sent from the inputmeans, in the step (B), the program executing means executing thesynchronization executing program in accordance with at least thesynchronization control signal sent from the synchronization controlmeans.

The above arrangements make it possible to (i) execute thesynchronization executing program in synchronization with thereproduction of the content data; and (ii) control the contentreproduction, without using the synchronization executing program, inaccordance with the reproduction control manipulation (user'smanipulation) supplied from outside. This eliminates the overheadoccurring when the synchronization executing program is used for thecontrol of the content reproduction, with the result that responsivenessto the user's reproduction control manipulation can be improved. Here,the “predetermined timing” at which the synchronization control meanssends the synchronization control signal to the program executing meanscorresponds to, e.g., either (i) a timing at which the reproduction ofthe content data is ended, or (ii) a timing specified by thesynchronization timing information.

Further, a reproducing apparatus according to the present inventionincludes: data acquiring means for acquiring content data items,synchronization executing programs, and program management informationitems; decoding means for converting each of the content data items toreproduction data for reproduction output; program executing means forexecuting each of the synchronization executing programs, each of theprogram management information items including (i) a program specifyinginformation item for specifying a program to be simultaneously used forthe reproduction output together with a content data item, and (ii) acontent data specifying information item for specifying the content dataitem to be simultaneously used for the reproduction output together withthe program, the reproducing apparatus, further including: generalcontrol means for (i) instructing the program executing means to executethe synchronization executing program specified by the programspecifying information item, and either (ii) instructing the decodingmeans to convert the content data item specified by the contentspecified information item, or (iii) instructing the data acquiringmeans to acquire the content data item specified by the contentspecifying information item.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means, program executing means,and data acquiring means, includes the steps of: causing the dataacquiring means to acquire content data items, synchronization executingprograms, and program management information items; causing decodingmeans to convert each of the content data items to reproduction data forreproduction output; causing the program executing means to execute eachof the synchronization executing programs, each of the programmanagement information items including (i) a program specifyinginformation item for specifying a program to be simultaneously used forthe reproduction output together with a content data item, and (ii) acontent data specifying information item for specifying the content dataitem to be simultaneously used for the reproduction output together withthe program, the method, further including the step of: instructing theprogram executing means to execute the synchronization executing programspecified by the program specifying information item, and either (ii)instructing the decoding means to convert the content data itemspecified by the content specified information item, or (iii)instructing the data acquiring means to acquire the content data itemspecified by the content specifying information item.

The above arrangements make it possible that the readout of the contentdata item from the medium, the decoding thereof, the reproductionthereof are carried out independently from the execution of thesynchronization executing program, with the result that time required instarting the reproduction of the content data item can be shortened.Especially, the content data item can be read out prior to thecompletion of the interpretation of the synchronization executingprogram by instructing the data acquiring means to acquire the contentdata item. Note that, in the above arrangements, the synchronizationexecuting program is not limited to a program for generating the outputdata.

Further, a reproducing apparatus according to the present inventionincludes: data acquiring means for acquiring content data items, asynchronization executing program, and program management information;decoding means for converting each of the content data items intoreproduction data for reproduction output; and program executing meansfor executing the synchronization executing program, the programmanagement information including at least content data specifyinginformation for specifying a content data item which is simultaneouslyused for the reproduction output together with the synchronizationexecuting program, the reproducing apparatus, further including:verifying means for verifying whether or not the content data item whichthe synchronization executing program instructs the decoding means todecode is the content data item specified by the program managementinformation.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means, program executing means,data acquiring means, and verifying means, includes the steps of:causing the data acquiring means to acquire content data items, asynchronization executing program, and program management information;causing the decoding means to convert each of the content data itemsinto reproduction data for reproduction output; and causing the programexecuting means to execute the synchronization executing program, theprogram management information including at least content dataspecifying information for specifying a content data item which issimultaneously used for the reproduction output together with thesynchronization executing program, the method, further including thestep of: causing the verifying means to verify whether or not thecontent data item which the synchronization executing program instructsthe decoding means to decode is the content data item specified by theprogram management information.

The above arrangements make it possible to verify whether or not thecontent data item to be reproduced by using the synchronizationexecuting program is the content data item specified by the content dataspecifying information. This makes it possible to detect a reproductionoperation carried out by a program that is not approved to reproduce thecontent data, with the result that the content data can be preventedfrom being reproduced without authorization. Note that, in the abovearrangements, the synchronization executing program is not limited to aprogram for generating the output data.

Further, the following can be attained by arranging the reproducingapparatus such that the synchronization executing program can reproduceonly the content data item specified (declared) by the content dataspecifying information of the content management information. That is,the copyright holder of the content data item does not need to executethe synchronization executing program so as to check unauthorized use ofthe content data. In other words, the copyright holder of the contentdata item can check the unauthorized use of the content data by merelychecking the static information, i.e., the content data specifyinginformation provided outside the synchronization executing program.

Further, a reproducing apparatus according to the present inventionincludes: data acquiring means for acquiring content data items, asynchronization executing program, program management information, andverification-use information; decoding means for converting each of thecontent data items into reproduction data for reproduction output; andprogram executing means for executing the synchronization executingprogram, the program management information including at leastauthorization information which approves use of a content data item thatis simultaneously used for the reproduction output together with thesynchronization executing program, the reproducing apparatus, furtherincluding: verifying means for verifying, by using the verification-useinformation, authorization information of the content data item whichthe synchronization executing program instructs the decoding means todecode.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means, program executing means,data acquiring means, and verifying means, includes the steps of:causing the data acquiring means to acquire content data items, asynchronization executing program, program management information, andverification-use information; causing the decoding means to convert eachof the content data items into reproduction data for reproductionoutput; and causing the program executing means to execute thesynchronization executing program, the program management informationincluding at least authorization information which approves use of acontent data item that is simultaneously used for the reproductionoutput together with the synchronization executing program, thereproducing apparatus, further including: verifying means for verifying,by using the verification-use information, authorization information ofthe content data item which the synchronization executing programinstructs the decoding means to decode.

The above arrangements make it possible to verify, by using theverification-use information, whether or not the reproduction is carriedout by using a synchronization executing program having programmanagement information onto which appropriate authorization informationis recorded. This makes it possible to verify whether or not thereproduction of the content data item is approved by the copyrightholder of the content data item, which reproduction is carried out withthe use of the currently executed synchronization executing program.This makes it possible to detect a reproduction operation carried out bya program that is not approved to reproduce the content data item, withthe result that the content data item can be prevented from beingreproduced without authorization. Note that the synchronizationexecuting program is not limited to a program for generating the outputdata for use in the reproduction output.

Additional objects, features, and strengths of the present inventionwill be made clear by the description below. Further, the advantages ofthe present invention will be evident from the following explanation inreference to the drawings.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram schematically illustrating a structure of avideo disk player according to an embodiment of the present invention.

FIG. 2 is a function block diagram fully illustrating a structure of aprogram executing section of the video disk player shown in FIG. 1.

FIG. 3 is a function block diagram fully illustrating a structure of anoutput control section of the video disk player shown in FIG. 1.

FIG. 4 is a function block diagram fully illustrating a structure of avideo reproducing section of the video disk player shown in FIG. 1.

FIG. 5( a) is an explanatory diagram illustrating a data structure ofsynchronization timing information.

FIG. 5( b) is an explanatory diagram illustrating a data structure ofsynchronization timing information.

FIG. 6 is an explanatory diagram illustrating data allocation in anoptical disk reproduced by the video disk player shown in FIG. 1.

FIG. 7 is a flowchart illustrating a reproducing process carried out bythe video disk player shown in FIG. 1.

FIG. 8 is a flowchart illustrating a program executing process carriedout by a program executing section of the video disk player shown inFIG. 1.

FIG. 9 is a flowchart illustrating a process which the program executingsection of the video disk player shown in FIG. 1 causes an interrupthandler to carry out.

FIG. 10 is an explanatory diagram illustrating an specific example ofthe synchronization timing information.

FIG. 11 is a timing chart corresponding to the specific example of thesynchronization timing information shown in FIG. 10.

FIG. 12( a) is an explanatory diagram illustrating a data structure ofthe synchronization timing information.

FIG. 12( b) is an explanatory diagram illustrating a data structure ofthe synchronization timing information.

FIG. 13( a) is an explanatory diagram illustrating (i) an example ofsetting a field independent_flag, and (ii) an example of display in thiscase.

FIG. 13( b) is an explanatory diagram illustrating the example ofsetting the field independent_flag, i.e., illustrating entriessync_info( ) corresponding to FIG. 13( a).

FIG. 13( c) is an explanatory diagram illustrating (i) an example ofsetting a field independent_flag, and (ii) an example of display in thiscase.

FIG. 13( d) is an explanatory diagram illustrating the example ofsetting the field independent_flag, i.e., illustrating entriessync_info( ) corresponding to FIG. 13( c).

FIG. 14( a) is an explanatory diagram illustrating (i) an example ofsetting a field merger_flag, and (ii) an example of display in thiscase.

FIG. 14( b) is an explanatory diagram illustrating the example ofsetting the field merger_flag, i.e., illustrating entries sync_info( )corresponding to FIG. 14( a).

FIG. 15 is a flowchart illustrating a program executing process carriedout by the program executing section of the video disk player shown inFIG. 1.

FIG. 16 is a flowchart illustrating an interruption rerun processcarried out by the video reproducing section of the video disk playershown in FIG. 1.

FIG. 17 is an explanatory diagram illustrating a specific example of thesynchronization timing information.

FIG. 18( a) is an explanatory diagram illustrating a data structure ofsynchronization timing information.

FIG. 18( b) is an explanatory diagram illustrating a data structure ofsynchronization timing information.

FIG. 19 is a function block diagram fully illustrating a structure of avideo disk player according to another embodiment of the presentinvention.

FIG. 20 is a function block diagram fully illustrating a structure of aprogram executing section of the video disk player shown in FIG. 19.

FIG. 21 is a function block diagram fully illustrating a structure of ageneral control section of the video disk player shown in FIG. 19.

FIG. 22( a) is an explanatory diagram illustrating a data structure ofprogram management information.

FIG. 22( b) is an explanatory diagram illustrating the data structure ofprogram management information.

FIG. 23 is an explanatory diagram illustrating data allocation in anoptical disk to be reproduced by the video disk player shown in FIG. 19.

FIG. 24 is a flowchart illustrating processes carried out by the generalcontrol section of the video disk player shown in FIG. 19.

FIG. 25 is a flowchart illustrating a menu calling-up process carriedout by the general control section of the video disk player shown inFIG. 19.

FIG. 26 is a flowchart illustrating a resuming process carried out bythe general control section of the video disk player shown in FIG. 19.

FIG. 27 is a sequence diagram illustrating (i) correlations amongrespective blocks of the video disk player shown in FIG. 19, and (ii) acase where a field is_video_specified is indicative of 1 and a fieldplayback_control_mode is indicative of 1 and a field start_mode isindicative of 0.

FIG. 28 is a functional block diagram schematically illustrating astructure of a video disk player according to another embodiment of thepresent invention.

FIG. 29 is a function block diagram fully illustrating a structure ofthe general control section of the video disk player shown in FIG. 28.

FIG. 30( a) is an explanatory diagram illustrating a data structure ofprogram management information.

FIG. 30( b) is an explanatory diagram illustrating the data structure ofthe program management information.

FIG. 31( a) is an explanatory diagram schematically illustrating (i)preparation of a field certificate contained in the entry video_info( )shown in FIG. 30( b), and (ii) verification of a program.

FIG. 31( b) is an explanatory diagram schematically illustrating (i) thepreparation of the field certificate contained in the entry video_info() shown in FIG. 30( b), and (ii) the verification of the program.

FIG. 32 is a flowchart schematically illustrating processes carried outby the general control section of the video disk player shown in FIG.28.

FIG. 33 is a flowchart illustrating a verifying process carried out bythe general control section of the video disk player shown in FIG. 28.

FIG. 34 is a function block diagram schematically illustrating astructure of a video disk player according to another embodiment of thepresent invention.

FIG. 35 is a function block diagram schematically illustrating astructure of a conventional AV device.

BEST MODE FOR CARRYING OUT THE INVENTION Embodiment 1

One embodiment of the present invention will be explained below withreference to FIG. 1 through FIG. 11. Note that the present embodimentassumes a video disk player; however, the present invention is notlimited to this, and is applicable to a PC (personal computer) having ahardware decoder.

<System Structure>

FIG. 1 is a functional block diagram schematically illustrating astructure of a video disk player 1 according to the present embodiment.

The video disk player 1 (reproducing apparatus) is an apparatus forreproducing AV data stored in an optical disk 2. As shown in FIG. 1, thevideo disk player 1 includes a program executing section 10, a videoreproducing section 20, a combining section 30, an output controlsection 40, and disk reading section 50.

The disk reading section 50 (data acquiring means; reading means) readsout video data (content data), programs (synchronization executingprograms), and synchronization timing information from the optical disk2 (content recording medium). Then, the disk reading section 50 sendseach of the programs to the program executing section 10, and sends thevideo data and the below-described synchronization timing information tothe video reproducing section 20.

The program executing section 10 executes the program. Specifically, theprogram executing section 10 executes the program so as to control thevideo reproducing section 20, the disk reading section 50, and theoutput control section 40. Moreover, the program executing section 10sends, to the output control section 40, bitmap data generated byexecuting the program.

The video reproducing section 20 decodes the video data supplied fromthe disk reading section 50, and sends the decompressed video data tothe combining section 30. Further, the video reproducing section 20controls the program executing section 10 and the output control section40 in accordance with the synchronization timing information suppliedfrom the disk reading section 50.

The output control section 40 retains the bitmap data sent from theprogram executing section 10, and sends the bitmap data to the combiningsection 30 in accordance with the control carried out by each of thevideo reproducing section 20 and the program executing section 10.

The combining section 30 combines (i) the bitmap data sent from theoutput control section 40, with (ii) the decompressed video data sentfrom the video reproducing section 20. Then, the combine section 30outputs an image (combined image) obtained by the combining.

The program executing section 10 and the output control section 40constitute a synchronization processing section (synchronizationprocessing means) 60. That is, the synchronization processing section 60is arranged such that: the program executing section 10 executes theprogram so as to generate the bitmap data (output data; second outputdata) in accordance with a synchronization control signal received fromthe video reproducing section 20, and the output control section 40outputs the bitmap data in accordance with the synchronization controlsignal received from the video reproducing section 20.

<Program Executing Section>

FIG. 2 is a functional block diagram fully illustrating a structure ofthe program executing section 10.

As described above, the program executing section executes a program inaccordance with the synchronization control signal received from asynchronization control section 22 of the video reproducing section 20.The program executing section 10 executes a program specified by a fieldaction_id contained in the synchronization control signal received fromthe synchronization control section 22. Particularly in the presentembodiment, the program executing section 10 executes a program forgenerating image data to be overlaid with a video image.

As shown in FIG. 2, the program executing section 10 is made up of amemory 11, a CPU 12, and a video reproduction control section 13, and aninterrupt control section 14.

The memory 11 temporarily stores the program sent from the disk readingsection 50. The CPU 12 reads out the program thus stored in the memory11, and executes the program. In accordance with how the problem runs,the CPU 12 sends an instruction to the video reproduction controlsection 13, or sends the bitmap data to the output control section 40.The video reproduction control section 13 sends a control signal to thevideo reproducing section in accordance with the program thus executed.Specific examples of the control signal include: (i) a control signalfor controlling the reproduction such as reproduction start andreproduction suspending, and (ii) a control signal, for acquiring astate such as a current reproduction time point. The interrupt controlsection 14 receives an interrupt from outside of the program executingsection 10, and sends the interrupt to the CPU 12. The CPU 12 launchesan interrupt handler upon the reception of the interrupt from theinterrupt control section 14. Note that various types of informationsupplied from the member having sent the interrupt are stored in aregister (not shown) of the interrupt control section 14.

Here, the wording “interrupt handler” corresponds to method, which is anobject registered as EventLisner in Java®, and corresponds to a callbackfunction in the other program languages.

<Output Control Section>

FIG. 3 is a function block diagram fully illustrating a structure of theoutput control section 40.

As shown in FIG. 3, the output control section 40 is made up of an inputside buffer switching section 41, a display buffer memories 42A(#1) and42B(#2), and an output side buffer switching section 43.

The input side buffer switching section 41 receives the bitmap data fromthe program executing section 10, and sends the bitmap data to eitherone of the display buffer memories 42A and 42B in accordance with thecontrol of the program executing section 10. The output side bufferswitching section 43 sends, to the combining section 30 in accordancewith the control carried out by the video reproducing section 20, thedata stored in either one of the display buffer memories 42A and 42B.

Each of the display buffer memories 42A and 42B is a buffer memory forstoring the bitmap data, and is controlled via the input side bufferswitching section 41 and the output side buffer switching section 43 asdescribed above.

<Video Reproducing Section>

FIG. 4 is a function block diagram fully illustrating a structure of thevideo reproducing section 20.

As shown in FIG. 4, the video reproducing section 20 is made up of amemory 21, a synchronization control section 22, a clock 23, a decoder24, and an interface section 25.

The decoder 24 (decoding means) converts, in accordance with a clocksignal, the video data into the decompressed video data. Specifically,the decoder 24 decodes, into the decompressed video data (video image),the video data which is specified by an instruction sent from theinterface section 25 and which is read out from the optical disk 2 bythe disk reading section 50. Then, the decoder 24 outputs thedecompressed video data thus obtained.

The clock (clock generating means) 23 produces timings at which thedecoding and the output of the decompressed video data are carried out.That is, the clock 23 generates the clock signal. Note that: the presentembodiment assumes that the video data is stored in the optical disk 2in compliance with the ISO/IEC 13818-1 Program Stream format. In thiscase, the clock 23 has a value corresponding to an STC (System TimeClock) of the ISO/IEC 13818-1 Program Stream format.

The memory 21 stores the synchronization timing information sent fromthe disk reading section 50.

The synchronization control section (synchronization controlling means)22 always compares (i) a value indicated by the synchronization timinginformation stored in the memory 21, with (ii) the value of the clock23. In cases where the value indicated by the synchronization timinginformation coincides with the value of the clock 23, thesynchronization control section 22 carries out specified control withrespect to a process block (program executing section 10 or the outputcontrol section 40) specified by the synchronization timing information.Specifically, the synchronization control section 22 transmits thesynchronization control signal to the program executing section 10(program executing means; output generating means) in accordance withthe clock signal, at a timing specified by a field timing (timingspecifying information) contained in the synchronization timinginformation. When transmitting the synchronization control signal to theprogram executing section 10 at the timing specified by the fieldtiming, the synchronization control section 22 adds, to thesynchronization control signal, the field action_id corresponding to thefield timing. Note that it is not essential in the present embodimentthat the synchronization control section 22 monitors the state of thedecoder 24.

In cases where the process block specified by the synchronization timinginformation is the program executing section 10, the synchronizationcontrol section 22 interrupts the interrupt control section 14 such thatthe information is set in the register of the interrupt control section14.

On this account, no load is imposed in executing the program, with theresult that the processing can be carried out at an arbitrary timing inthe video reproduction time period. A reason of this is as follows. Thatis, the interrupt mechanism is made up of the hardware, so that nopolling processing for making a reference to the clock of the videoreproducing section 20 is required by the program unlike theconventional technique. Accordingly, overhead due to the pollingprocessing never occurs.

On the other hand, in cases where the process block specified by thesynchronization timing information is the output control section 40, thesynchronization control section 22 sends an instruction to the outputside buffer switching section 43 such that switching is carried outbetween the display buffer memories 42A and 42B. This makes it possibleto switch, at a frame precision, image outputs generated by using theprogram. A reason of this is as follows. That is, the switching iscarried out between the hardware, i.e., between the display buffermemories 42A and 42B, so that the overhead due to the execution of theprogram is less likely to occur as compared with the conventionaltechnique in which the switching between display and non-display iscontrolled by using a program. Examples of such an overhead include thefunction calling, the garbage collection, and the like.

Further, the interface section 25 of the video reproducing section 20receives the control signal from the video reproduction control section13 of the program executing section 10. In accordance with the controlsignal, the interface section 25 controls the decoder 24 and sends, tothe video reproduction control section 13, information indicative of thecurrent state of the video reproducing section 20.

<Synchronization Timing Information>

Explained here is a data structure of the data stored in the opticaldisk 2, with reference to FIG. 5 and FIG. 6.

The optical disk 2 stores the video data, the program, and thesynchronization timing information such that the video data, theprogram, and the synchronization timing information can be supplied tothe video disk player 1.

Each of FIG. 5( a) and FIG. 5( b) is an explanatory diagram illustratinga data structure of the synchronization timing information. As shown inFIG. 5( a), the synchronization timing information is made up of (i)number_of_sync_info indicating the number of entries, and (ii) zero ormore entries sync_info( ). See FIG. 5( b). Each of the entriessync_info( ) is made up of three fields: timing, target, and action_id.That is, the synchronization timing information at least include (i) thefield timing (timing specifying information) and (ii) the fieldaction_id (action specifying information).

The field timing indicates timing at which an instruction is supplied toeither the program executing section 10 or the output control section40. The field timing is used, by the synchronization control section 22,for the comparison with the value of the clock 23.

The field target indicates a target to which the instruction is given.The field target specifies either one of the program executing section10 and the output control section 40.

The field action_id represents the instruction. Note that details aboutthe field action_id will be described later.

As such, the synchronization timing information includes the fieldtarget indicating the target to which the instruction is given. Thismakes it possible to deal with a case where the instruction is suppliedto a plurality of process blocks. Further, the field action_idrepresenting the instruction is included in the synchronization timinginformation, with the result that a plurality of instructions can begiven to one process block.

<Data Allocation and File Structure>

FIG. 6 is an explanatory diagram illustrating data allocation in theoptical disk 2.

As shown in FIG. 6, the optical disk 2 is made up of a managementinformation region 61 and a video data region (content data storingregion) 62. The management information region 61 is made up of (i) aprogram storing region (synchronization program storing region) 61Astoring the programs, and (ii) a synchronization timing informationstoring region 61B storing the synchronization timing information. Onthe other hand, the video data region 62 stores the video data. Notethat the synchronization timing information, the programs, and the videodata are managed as files, individually.

Particularly in the present embodiment, the synchronization timinginformation is stored separately from the video data. Moreover, thesynchronization timing information is stored in the vicinity of theprograms. Further, the synchronization timing information and each ofthe programs are stored in the same file.

As such, the video data and the synchronization timing information areseparately managed. This makes it easier to share one video data with aplurality of programs. Further, the synchronization timing informationand each of the programs are managed as different files, so that theprogram does not need to be rewritten even in cases where the video datais edited after creating the program.

Note that the supply of the video data, the program, and thesynchronization timing information to the video disk player 1 can becarried out in various manners. For example, the video disk player 1 mayread out the video data, the program, and the synchronization timinginformation from the optical disk 2. Alternatively, any one of the videodata, the program, and the synchronization timing information may beacquired via a network by using a communication section (communicationmeans; not shown), and may be combined with the other data read out fromthe optical disk 2, with the result that the reproduction is carriedout. Further, a part or all of the programs stored in the optical disk 2may be replaced with programs acquired via the network for the sake ofthe reproduction. Further, a part or all of the video data stored in theoptical disk 2 may be replaced with video data acquired via the networkfor the sake of the reproduction. Further, a part or all of thesynchronization timing information stored in the optical disk 2 may bereplaced with synchronization timing information acquired via thenetwork for the sake of the reproduction.

For example, the video disk player 1 shown in FIG. 1 may be arrangedsuch that the program and the synchronization timing information areacquired via the network. Such a structure allows a manufacturer of theoptical disk 2 to render, via the network, an additional value to thevideo data provided for the user by way of the optical disk 2. Each ofthe program and the synchronization timing information has a data amountmuch smaller than that of the video data. Therefore, such a way ofrendering the additional value after providing the optical disk 2 forthe user is beneficial in terms of communication cost such as time and acharge.

<Reproducing Process>

The following explains a reproducing process carried out by the videodisk player 1, with reference to FIG. 7.

FIG. 7 is a flowchart illustrating an entire flow of the reproducingprocess carried out by the video disk player 1.

After being powered ON, the video disk player 1 reads out file systeminformation (not shown) and the like from the optical disk 2, andinitializes respective processing sections. In accordance with the filesystem information thus read out, the disk reading section 50 acquiresinformation indicative of a position, which stores an automatic launchprogram, of the optical disk 2 (S11). Note that the automatic launchprogram can be identified in accordance with a filename.

The automatic launch program is a program firstly launched from theoptical disk 2 in response to either (i) insertion of the optical disk 2to the video disk player 1, or (ii) the powering-ON of the video diskplayer 1. The automatic launch program may be any program which themanufacturer of the optical disk 2 would like to launch. However,normally used as the automatic launch program is a menu display programfor use in selection of a plurality of contents stored in the opticaldisk 2. Information indicative of the position storing the automaticlaunch program can be acquired by the disk reading section 50 inaccordance with the specific filename beforehand given to the filestoring the automatic launch program.

Next, the disk reading section 50 reads out a program in accordance withinformation indicative of the position storing the program, and sendsthe readout program to the program executing section 10 (S12). Theprogram executing section 10 receives and executes the program (S13). Onthis occasion, the disk reading section 50 acquires informationindicative of a position, which stores a program to be executed next, inthe optical disk 2 (S14).

Explained next is a step S13 in which the program executing section 10executes the program, with reference to FIG. 8.

Firstly, the program executing section 10 registers the interrupthandler for dealing with the interrupt sent from the video reproducingsection 20 (S21). Note that explanation about the interrupt handler willbe made later. Next, the program executing section 10 specifies a videodata file to be reproduced, and instructs the video reproducing section2 to start the reproduction thereof (S22). Finally, a process requiringno synchronization with the video reproduction is executed (S23).

Here, in Java®, the registering of the interrupt handler can be realizedby registering EventLisner in an object corresponding to an eventconcerning the video reproduction.

<Example of Executing a Program>

Explained next is a specific example how the video disk player 1executes the program, with reference to FIG. 9 through FIG. 11.Exemplified here is a program which causes a still image to be displayedduring a period of time from time point T2 to time point T4 in the videodata reproduction, and which causes an animation to be displayed duringa period of time from a time point T4 to a time point T5.

Now, a setting of the interrupt handler of the present specific examplewill be explained with reference to the flowchart shown in FIG. 9.

Firstly, the CPU 12 launches the interrupt handler. Then, in referenceto the register of the interrupt control section 14, the CPU 12 acquiresa value of the field action_id, which value is set by the videoreproducing section 20 (S31). Thereafter, the CPU 12 carries outjudgment on the field action_id (S32).

In cases where the field action_id is indicative of “A1” in the stepS32, the CPU 12 causes the still image to be generated and written inthe display memory buffer 42A (S33). On the other hand, in cases wherethe field action_id is indicative of “A2”, the CPU 12 causes theanimation to be generated, and causes bitmap of the animation to bewritten in the memory buffer 42B (S34). In the meanwhile, in cases wherethe field action_id is indicative of “A3”, the CPU 12 causes thegeneration of the animation to be ended (S35).

FIG. 10 illustrates the synchronization timing information used in thepresent specific example. Note that “A1”, “A2”, and “A3” in the columnindicating the field action_id correspond to the processes shown in FIG.9, respectively. Further, FIG. 11 is a timing chart of the presentspecific example. The timing chart has a horizontal axis representing atime period during which the video data is reproduced.

The process for displaying the still image starts at time point T1. At atime point t1, the writing of the still image in the display buffermemory 42A is finished, with the result that preparation for the displayis completed. Next, at time point T2, the image to be supplied to thecombining section 30 is switched to the image written in the displaybuffer memory 42A(#1), with the result that the still image isdisplayed.

Important here is that time T2−T1 is so set as to be longer than time d1(=t1−T1) required for the writing of the still image in the displaybuffer memory 42A. This allows the still image to be displayed at thespecified time point T2.

In the meanwhile, the process for starting the display of the animationstarts at a time point T3. At a time point t2, the writing of firstbitmap data of the animation in the display buffer memory is completed.Next, at a time point T4, the image to be supplied to the combiningsection 30 is switched to the image written in the display buffer memory42B(#2), with the result that the animation is displayed.

Important here is that time T4−T3 is so set as to be longer than time d2(=t2−T3) required for the writing of the first bitmap data of theanimation in the display buffer memory 42B. This makes it possible toswitch the image display from the still image to the animation at a timepoint T4.

Explained next are timings at which the various types of data of thepresent embodiment are read out from the optical disk 2, respectively.The video data has a large data amount. Therefore, in view of a memoryamount and readout time, it is not realistic to read out the video dataall at once before the decoding. For this reason, the readout of thevideo data is carried out concurrently with the decoding of the videodata.

On the other hand, each of the program and the synchronization timinginformation has a small data amount. Therefore, even when the programand the synchronization timing information are respectively read out tothe memories 11 and 21 at the same time, no problem occurs in terms ofthe memory amount and the readout time. Therefore, the program and thesynchronization timing information are read out at the same time beforethe start of the readout of the video data. This makes it possible toavoid (i) discontinuity of the video reproduction due to movement madeby a pickup (not shown) of the disk reading section 50 that is readingout the video data, (ii) increase of power consumption, and (iii)occurrence of noise. In the present embodiment, the program and thesynchronization timing information are positioned adjacent to each otherin the optical disk 2, so that the pickup travels in a short distance soas to read out the program and the synchronization timing information.This makes it possible to (i) shorten latency time (waiting time)required for the start of the reproduction, and (ii) prevent theinterruption of the video reproduction, and (iii) restrain the powerconsumption, and (iv) restrain the noise.

Explained next is a structure of the program of the present specificexample. In the present specific example, the program deals with (i) thevideo reproducing process that is a main process, and (ii) the stillimage displaying process and the animation displaying process which aresub processes. The video reproducing process, the still image displayingprocess, and the animation displaying process may be handled by oneprogram. Alternatively, the video reproducing process, the still imagedisplaying process, and the animation displaying process may be handledby one main program and two sub programs.

In cases where the processes are handled by the plural programs, theprograms are possibly handled as different files. In this case, it ispreferable that the programs be handled as one file for the purpose ofreducing load to be imposed on the disk reading section 50. A fileformat termed “JAR (Java ARchive) file defined in Java® language is aspecific example for use in reducing the load.

As described above, the video disk player 1 of the present embodimentincludes the program executing section 10, the video reproducing section20, and the combining section 30 for combining (i) the output (bitmapdata) of the program executing section 10 with (ii) the output(decompressed video data) of the video reproducing section 20. Moreover,the video disk player 1 controls the output of the program executingsection 10 in accordance with the clock of the video reproducing section20. On this account, no load is imposed during the process carried outby the program executing section 10, so that the outputting of the videodata, i.e., the output generated by the video reproducing section 20,can be started and ended at a specified timing with a frame precision.This makes it possible that: in cases where the computer programexecution and the video reproduction are simultaneously carried out, thedisplay of the graphics, the animation, and the like each generated bythe program is started from a specific video frame in the videoreproduction time period, and is ended at a specific video frametherein.

Further, in the video disk player 1, the synchronization timinginformation is separated from the information (video data) for use ingenerating the output of the video reproducing section 20. This makes itpossible that different items of synchronization timing information aregiven to the information for use in generating the output of the videoreproducing section 20.

Further, in the video disk player 1, the synchronization timinginformation includes (i) the information indicative of a time point inthe time period during which the video reproduction is carried out bythe video reproducing section 20; and (ii) at least either one of (a)the information indicative of the control target, and (b) theinformation indicative of the control to be carried out. This makes itpossible to handle (i) a case where an instruction is given to aplurality of process blocks, and (ii) a case where a plurality ofinstructions are switchably given to one process block.

Embodiment 2

Another embodiment of the present invention will be explained below withreference to FIG. 12 through FIG. 17. For ease of explanation, materialshaving the equivalent functions as those shown in the drawingspertaining to the foregoing Embodiment 1 will be given the samereference symbols, and explanation thereof will be omitted here.Further, the wordings defined in Embodiment 1 are used in the presentembodiment in accordance with the definition made in Embodiment 1,unless otherwise noted.

The present embodiment is a modified example of Embodiment 1, and allowsfor reproduction starting from an arbitrary position of the video data.For this reason, the present embodiment and Embodiment 1 have a lot incommon, so that the following description only deals with differencesfrom Embodiment 1.

<System Structure>

The present embodiment has the same system structure as that ofEmbodiment 1, so that explanation thereof is omitted.

<Program Executing Section>

The present embodiment has the same program executing section as that ofEmbodiment 1, so that explanation thereof is omitted.

<Output Control Section>

The present embodiment has the same output control section as that ofEmbodiment 1, so that explanation thereof is omitted.

<Video Reproducing Section>

The present embodiment has substantially the same program executingsection as that of Embodiment 1; however, the present embodiment andEmbodiment 1 are different from each other in that: the presentembodiment disregards an entry sync_info( ) which is contained in thesynchronization timing information, and which has the below-mentionedfield merged_flag whose value is set at “1”.

Further, in cases where the reproduction is started from a certain pointof the content data, the synchronization control section 22 transmitssynchronization control signals to the program executing section 10 inorder from (i) a synchronization control signal corresponding to theearliest time point, to (ii) a synchronization control signalcorresponding to the latest time point of the time points respectivelyindicated by the timing specifying information. The synchronizationcontrol signals are respectively transmitted in accordance withsynchronization timing information respectively containing fields timing(timing specifying information) each indicating a time point precedingto the time from which the reproduction is started.

Further, in the case where the reproduction is started from the certainpoint of the content data, the synchronization control section 22transmits the synchronization control signals to the program executingsection 10 in accordance with the following synchronization timinginformation items (1) and (2) each containing dependency information(below-mentioned field independent_flag) indicating that thesynchronization timing information is independent from the othersynchronization timing information: (1) a synchronization timinginformation item containing timing specifying information indicating atime point that comes before but is the closest to the time point fromwhich the reproduction is started; and (2) a synchronization timinginformation item containing timing specifying information indicating atime point coming after the time point indicated by the synchronizationtiming information item (1). The synchronization control signals aretransmitted in order from (i) a synchronization control signalcorresponding to the earliest time point, to (ii) a synchronizationcontrol signal corresponding to the latest time point of the time pointsrespectively indicated by the timing specifying information. Forattainment of this, each of the synchronization timing information itemscontains such dependency information indicating a dependency relationwith the other synchronization timing information.

Further, in the case where the reproduction is started from the certainpoint of the content data, the synchronization control section 22transmits the synchronization control signals to the program executingsection 10 in accordance with the following synchronization timinginformation items each containing merged synchronization executingprogram identifying information (field merged_flag) indicating that theprogram is a merged synchronization executing program allowing the sameresult as a result obtained by executing a plurality of synchronizationexecuting programs: (1) a synchronization timing information itemcontaining timing specifying information indicating a time point thatcomes before but is the closest to the time point from which thereproduction is started; and (2) a synchronization timing informationitem containing timing specifying information indicating a time pointcoming after the time point indicated by the synchronization timinginformation (1). The synchronization control signals are transmitted inorder from (i) a synchronization control signal corresponding to theearliest time point, to (ii) a synchronization control signalcorresponding to the latest time point of the time points respectivelyindicated by the timing specifying information items. For attainment ofthis, the disk reading section 50 acquires the merged synchronizationexecuting program allowing the same result as the result obtained byexecuting the plurality of synchronization executing programs. It ispreferable that the merged synchronization executing program be storedin the optical disk 2 together with the synchronization executingprograms corresponding to the merged synchronization executing program.As such, the synchronization timing information contains (i) the timingspecifying information; (ii) the field action_id (action specifyinginformation) for indicating a synchronization executing program to beexecuted; and (iii) the merged synchronization executing programidentifying information indicating whether or not the synchronizationexecuting program is the merged synchronization executing programidentifying information (field merged_flag).

<Synchronization Timing Information>

Explained here is a data structure of the synchronization timinginformation of the present embodiment, with reference to FIG. 12. Eachof FIG. 12( a) and FIG. 12( b) is an explanatory diagram illustratingthe data structure of the synchronization timing information.

As shown in FIG. 12( a), the synchronization timing information is madeup of (i) number_of_sync_info indicating the number of entries, and (ii)zero or more entries sync_info( ). As shown in FIG. 12( b), each of theentries sync_info( ) is made up of five fields: timing, target,action_id, independent_flag, and merged_flag. The fields timing (timingspecifying information), target, and action_id (action specifyinginformation) are identical to those of Embodiment 1, respectively.Therefore, explanation thereof is omitted here. Note that, it ispreferable that the entries sync_info( ) of the synchronization timinginformation are arranged in order of the values indicated by therespective fields timing of the entries sync_info( ).

The field independent_flag is a flag indicating whether or not each of(i) a process corresponding to an entry sync_info( ) including the flag,and (ii) a result of the process (hereinafter, referred to as“processing result”) depend on each of the results of the processescorresponding to the fields action_id of entries sync_info( ) comingbefore the entry sync_info( ). In cases where the process and theprocessing result depend thereon, the field independent_flag isindicative of “0”. On the other hand, in cases where the process and theprocessing result do not depend thereon, the independent_flag isindicative of “1”.

Here, each of FIG. 13( a) through FIG. 13( d) is an explanatory diagramillustrating an example of setting the field independent_flag.

For example, consider a case where: a process corresponding to an fieldaction_id of an entry sync_info(1) coming first is a process of drawinggraphics A, and a process corresponding to a field action_id of an entrysync_info(2) coming second is a process of drawing graphics B inaddition to the graphics A (see FIG. 13( a)). In this case, a result ofthe process corresponding to the field action_id of the entrysync_info(2) depends on a result of the process corresponding to thefield action_id of the entry sync_info(1). Therefore, the fieldindependent_flag of the entry sync_info(2) is set at “0” (see FIG. 13(b)).

On the other hand, in cases where the process corresponding to the fieldaction_id of the entry sync_info(2) is a process of drawing the graphicsB after erasing (canceling) the graphics A, the result of the processcorresponding to the field action_id of the entry sync_info(2) isindependent from the result of the process corresponding to the fieldaction_id of the entry sync_info(1). Therefore, the fieldindependent_flag of the entry sync_info(2) is set at “1” (see FIG. 13(d)). Note that the i-th entry sync_info( ) (an entry sync_info( ) comingi-th) is referred to as entry “sync_info(i)”.

Next, the field merged_flag is a flag indicating whether or not aprocessing result of an entry sync_info( ) including the flag reflectsrespective processing results of all the entries sync_info( ) comingbefore the entry sync_info( ). In cases where the processing result ofthe entry sync_info( ) reflects the respective processing results, thefield merged_flag is set at “1”. Otherwise, the field merged_flag is setat “0”.

Here, each of FIG. 14( a) and FIG. 14( b) is an explanatory diagramillustrating an example of setting the field merged_flag.

For example, assume that: the process corresponding to the fieldaction_id of the entry sync_info(1) is a process of drawing the graphicsA, and the process corresponding to the field action_id of the entrysync_info(2) is a process of drawing graphics B in addition to thegraphics A as shown in FIG. 14( a). Under such conditions, consider acase where a result of a process corresponding to a field action_id ofan entry sync_info(3) coincides with the results of the processesrespectively corresponding to the fields action_id of the entriessync_info(1) and sync_info(2). In other words, consider a case where theprocess corresponding to the field action_id of the entry sync_info(3)is a process of simultaneously drawing the graphics A and B. In thiscase, the field merged_flag is set at “1” (see FIG. 14( b). Here, aprogram for carrying out the process corresponding to the fieldaction_id of the entry sync_info(3) is referred to as the mergedsynchronization executing program.

The field dependent flag and the field merged_flag are used so as toreduce the graphics overlaying display processing in cases where thereproduction is started from the certain point of the video data. Thiswill be explained later.

<Data Allocation and File Structure>

Data allocation and a file structure of the present embodiment is thesame as those of Embodiment 1, so that explanation thereof is omitted.

<Reproducing Process>

A difference between the present embodiment and Embodiment 1 lies in theprogram executing process, so that the program executing process isexplained with reference to FIG. 15. Note that, the explanation hereassumes that the reproduction is started from time point T of the timeperiod during which the video data is reproduced. FIG. 15 is a flowchartillustrating the program executing process carried out by the programexecuting section 10 of the video disk player 1 shown in FIG. 1.

Firstly, the program executing section 10 registers the interrupthandler for dealing with the interrupt sent from the video reproducingsection 20 (S41). Next, the program executing section 10 issues aninterruption rerun instruction to the video reproducing section 20, andwaits for completion of the interruption rerun (S42). Then, the programexecuting section 10 specifies a video data file to be reproduced, andinstructs start of reproducing the video data file (S43). Finally, aprocess requiring no synchronization with the video reproduction isexecuted (S44).

Explained next is the interruption rerun process with reference to FIG.16. FIG. 16 is a flowchart illustrating the interruption rerun processcarried out by the video reproducing section 20.

Firstly, the video reproducing section 20 searches for an entry, whichhas an entry number p and which is contained in the synchronizationtiming information (S51). The entry having the entry number p is such anentry that has the maximum timing value among entries having timingvalues each corresponding to a time point coinciding with or comingbefore the reproduction start time point T. Next, the video reproducingsection 20 decrements the entry number by 1 so as to search for either(i) an entry whose field independent_flag is indicative of “1” (an entrydepending on a result of a process corresponding to a field action_id ofeach of entries sync_info( ) coming before the entry), or (ii) an entrywhose field merged_flag is indicative of “1” (an entry reflecting aprocessing result of each of entries sync_info( ) coming before theentry). In cases where such an entry is found by the search, the videoreproducing section 20 carries out interruption in order from (i)interruption corresponding to the found entry, to (ii) interruptioncorresponding to the entry having entry number p (S57 through S59). Onthe other hand, in cases where such an entry is not found by the search,the video reproducing section 20 carries out interruption in order from(i) interruption corresponding to the entry having the entry number 1,to (ii) the interruption corresponding to the entry having the entrynumber p (S57 through S59).

Specific Example

The following explains a specific example of executing the program inthe video disk player 1 of the present embodiment, with reference toFIG. 17. FIG. 17 is an explanatory diagram illustrating a specificexample of the synchronization timing information.

First, consider a case where the time point (reproduction start timepoint) T from which the video data starts to be reproduced comes beforetime point T1. In this case, no interruption rerun needs to be carriedout in the step S42. Therefore, while carrying out the videoreproduction, the video reproducing section 20 interrupts the programexecuting section 10 at such a timing that each of values respectivelyindicated by fields timing of the entries whose entry numbers are 1through 5 coincide with a value of the clock 23. The interruption iscarried out in order from (i) interruption corresponding to the entryhaving the entry number 1, to (ii) interruption corresponding to theentry having entry number 5. However, the entry whose entry number is 3has a field merged_flag indicative of “1”, so that no interruptioncorresponding to the entry number 3 is carried out.

Next, consider a case where the time point T from which the video datastarts to be reproduced coincides with or comes after the time point T1,and where the time point T comes before time point T2. The entrysync_info(1) has a field timing indicating a value corresponding to timecoming before the time point T1, and has a field independent_flagindicative of “1”. The entry sync_info(2) has a field independent_flagindicative of “0”, and has a field merged_flag indicative of “0”.Therefore, in the interruption rerun process, interruption correspondingto the entry sync_info(1) and interruption corresponding to the entrysync_info(2) are carried out in this order.

Next, consider a case where the time point T from which the video datastarts to be reproduced coincides with or comes after the time point T2,and where the time point T comes before time point T3. The entrysync_info(3) has a field merged_flag indicative of “1”, so thatinterruption corresponding to the entry sync_info(3) is carried out inthe interruption rerun process. The entry sync_info(3) does not requirea process of relocating the graphics A, which process is required by theentry sync_info(2). Accordingly, the interruption corresponding to theentry sync_info(3) is executed with throughput lower than that in thecase where the interruption corresponding to the entry sync_info(1) andthe interruption corresponding to the entry sync_info(2) are carried outin this order. This makes it possible to shorten time required inactually starting the reproduction from the time point T.

Next, consider a case where the time point T from which the video datastarts to be reproduced coincides with or comes after the time point T3,and where the time point T comes before time point T4. The entrysync_info(4) has an field independent_flag indicative of “1”. Therefore,interruption corresponding to the entry sync_info(1), and interruptioncorresponding to the entry sync_info(2) do not need to be carried out inthe interruption rerun process, but only interruption corresponding tothe entry sync_info(4) is carried out therein.

Next, consider a case where the time point T from which the video datastarts to be reproduced coincides with or comes after time point T4. Inthis case, interruption corresponding to the entry sync_info(4), andinterruption corresponding to the entry sync_info(5) are carried out inthe interruption rerun process.

As explained above, the synchronization timing information is containedin the optical disk 2, so that a video clock change occurring until suchan arbitrary time in the video data does not need to be produced againfor generation of graphics corresponding to the arbitrary time point.This shortens time required in starting the reproduction. Moreover, thefield independent_flag is contained in the synchronization timinginformation, so that time taken for the display of the graphics can befurther shortened. Further, the time taken for the display of thegraphics can be further shortened by preparing a process allowingacquirement of the result obtained by merging the results of theindividual processes.

As described above, a reproducing apparatus of the present invention maybe arranged such that: before starting reproduction from a specific timepoint of content data, synchronization control means respectivelytransmits regulation control signals in accordance with timinginformation items respectively including timing specifying informationitems each indicating a time point coming before the specific timepoint, in order from a regulation control signal corresponding to atiming specifying information item having a smallest number.

On this account, a clock change occurring until an arbitrary time doesnot need to be produced again when reproducing the content data from thearbitrary time. This makes it possible to shorten time required instarting the reproduction.

Further, the reproducing apparatus of the present invention may bearranged such that: each timing information item includes dependencyinformation indicating a dependency relation with other timinginformation items of a timing information aggregation made up of timinginformation items; and before starting the reproduction form thespecific time point of the content data, the synchronization controlmeans checks the dependency information, and respectively transmitssynchronization control signals in accordance with timing informationitems each of which does not depend on the other timing informationitems, and each of which includes a timing specifying informationindicating a time point that comes before the specific time point andthat is the closest to the specific time point, the synchronizationcontrol signals being sent in order from a regulation control signalcorresponding to a timing specifying information item having a smallestnumber.

On this account, unnecessary processes do not need to be carried out.This makes it possible to shorten time required in displaying a graphicsand starting the reproduction.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: a plurality of synchronization executingprograms constitute a synchronization executing program aggregation; andthe synchronization executing program aggregation includes asynchronization executing program (merged synchronization executingprogram) which allows an identical result to a result obtained throughprocesses carried out by other synchronization executing programs; andthe synchronization executing program aggregation includes mergedsynchronization executing program identifying information foridentifying whether or not a synchronization executing program specifiedby action specifying information is the merged synchronization executingprogram; and before starting the reproduction from the specific time,the synchronization control means checks the merged synchronizationexecuting program identifying information, and makes a reference to themerged synchronization executing program so as to respectively transmitsynchronization control signals in accordance with timing informationitems respectively including timing specifying information items eachindicating a time point coming before the specific time point, in orderfrom a synchronization control signal corresponding to timing specifyinginformation having a smallest number.

On this account, unnecessary processes do not need to be carried out.This makes it possible to shorten time required in displaying a graphicsand starting the reproduction.

Embodiment 3

Another embodiment of the present invention will be explained below withreference to FIG. 18. For ease of explanation, materials having theequivalent functions as those shown in the drawings pertaining toEmbodiments 1 and 2 will be given the same reference symbols, andexplanation thereof will be omitted here. Further, the wordings definedin Embodiments 1 and 2 are used in the present embodiment in accordancewith the definition made in Embodiments 1 and 2, unless otherwise noted.The present embodiment is a modified example of Embodiment 1, and allowsfor “special reproduction” such as high speed reproduction. For thisreason, the present embodiment and Embodiment 1 have a lot in common, sothat the following description only deals with differences fromEmbodiment 1.

<System Structure>

The present embodiment has the same system structure as that ofEmbodiment 1, so that explanation thereof is omitted.

<Program Executing Section>

The present embodiment has the same program executing section as that ofEmbodiment 1, so that explanation thereof is omitted.

<Output Control Section>

The present embodiment has the same output control section as that ofEmbodiment 1, so that explanation thereof is omitted.

<Video Reproducing Section>

The video reproducing section of Embodiment 1 and that of the presentembodiment are substantially the same, but are different from each otherin that: in the present embodiment, the synchronization control section22 monitors a condition of the decoder 24, and transmits thesynchronization control signal in accordance with (i) the condition ofthe decoder 24 and (ii) execution condition information (below-mentionedfield condition( ). For attainment of this, the synchronization timinginformation contains the execution condition information indicating thecondition in which the decoder 24 is when the synchronization executingprogram should be executed.

Specifically, the synchronization control section 22 always monitors thereproduction condition (e.g., normal reproduction, high speedreproduction, reverse reproduction, and slow reproduction) of thedecoder 24, and determines in accordance with the reproduction conditionwhether or not interruption corresponding to each of entries containedin the synchronization timing information is carried out. Specifically,in cases where, e.g., a field normal of the entry is indicative of “1”,the synchronization control section 22 determines, in reference tobelow-mentioned fields normal, FF, FR, SF, and SR of the entry, thatinterruption is carried out during the normal reproduction. Meanwhile,in cases where the field FF is indicative of “1”, the synchronizationcontrol section 22 determines, in reference to the fields, thatinterruption is carried out during the high speed reproduction.

<Synchronization Timing Information>

Explained here is a data structure of the synchronization timinginformation of the present embodiment, with reference to FIG. 18. Eachof FIG. 18( a) and FIG. 18( b) is an explanatory diagram illustratingthe data structure of the synchronization timing information.

As shown in FIG. 18( a), each of the entries sync_info( ) is made up offour fields: timing, target, action_id, and condition( ). The fieldstiming, target, and action_id are the same as those of Embodiment 1, sothat explanation thereof is omitted. Note that, it is preferable thatthe entries sync_info( ) contained in the synchronization timinginformation be arranged in order of values of respective fields timingof the entries.

As shown in FIG. 18( b), the field condition( ) (execution conditioninformation) is made up of the sub fields: normal, FF, FR, SF, and SR.The sub field normal indicates whether or not interruption correspondingto the entry sync_info( ) including the sub field normal is carried out.Specifically, in cases where the sub field normal is indicative of “1”,the interruption is carried out. On the other hand, in cases where thesub field normal is indicative of “2”, no interruption is carried out.Similarly, the sub field FF indicates whether or not interruption iscarried out during forward high speed reproduction. The sub field FRindicates whether or not interruption is carried out during reverse highspeed reproduction. The sub field SF indicates whether or notinterruption is carried out during forward slow speed reproduction. Thesub field SR indicates whether or not interruption is carried out duringreverse slow speed reproduction.

As such, the interruption process can be selected in accordance with thereproduction condition. This makes it possible to carry out a process inaccordance with the reproduction condition. For example, a specialgraphics is displayed only during the fast forwarding. This allows theuser to enjoy the content repeatedly, with the result that an additionalvalue of the content is improved.

As described above, the reproducing apparatus of the present inventionmay be arranged such that: the timing information contains the executioncondition information indicating the condition, in which thesynchronization executing program should be executed, of the decodingmeans. Moreover, the reproducing apparatus of the present invention maybe arranged such that: the synchronization control means monitors thecondition of the decoding means, and transmits the synchronizationcontrol signal in accordance with the condition of the decoding meansand the execution condition information.

This makes it possible to select an interruption process in accordancewith the reproduction condition, with the result that a process can becarried out in accordance with the reproduction condition. For example,special graphics is displayed only during the fast forwarding. Thisallows the user to enjoy the content repeatedly, with the result that anadditional value of the content is improved.

Embodiment 4

Another embodiment of the present invention will be explained below withreference to FIG. 19 through FIG. 27. For ease of explanation, materialshaving the equivalent functions as those shown in the drawingspertaining to Embodiments 1, 2, and 3 will be given the same referencesymbols, and explanation thereof will be omitted here. Further, thewordings defined in Embodiments 1, 2, and 3 are used in the presentembodiment in accordance with the definition made in Embodiments 1, 2,and 3, unless otherwise noted.

<System Structure>

FIG. 19 is a functional block diagram schematically illustrating astructure of a video disk player 1′ according to the present embodiment.

The video disk player 1′ (reproducing apparatus) is an apparatus forreproducing AV data stored in an optical disk 2. As shown in FIG. 19,the video disk player 1′ includes a user input section 3, a videoreproducing section 20, a combining section 30, a disk reading section50, a program executing section 70, a general control section (generalcontrol means; notifying means) 80, and a switching section (switchingmeans) 90.

The disk reading section 50 reads out video data (content data),programs (synchronization executing programs), synchronization timinginformation, and program management information from the optical disk 2(content recording medium). The disk reading section 50 sends each ofthe programs to the program executing section 70, and sends the videodata and the below-mentioned synchronization timing information to thevideo reproducing section 20, and sends the program managementinformation to the general control section 80.

The user input section 3 is a section via which the user manipulates thevideo disk player 1′. Specifically, the user input section 3 correspondsto a remote controller, and a button provided in a front panel of thedevice. The user input section 3 generates manipulation information(user input manipulation information; reproduction control information),and sends the manipulation information to the general control section80. Examples of the user manipulation include: (i) reproduction controlmanipulation such as reproduction start manipulation and suspendingmanipulation; (ii) menu manipulation such as menu calling-upmanipulation, manipulation of returning from the menu to the content;and (iii) GUI manipulation such as manipulation of moving a cursor inall the directions, and determining manipulation.

The general control section 80 carries out general control over thevideo disk player 1′. Specifically, the general control section 80controls the program executing section 70 and the switching section 90in accordance with the program management information read out by thedisk reading section 50. Further, the general control section 80transfers, to the program executing section 70 and the switching section90, a user input sent from the user input section 3.

The program executing section 70 executes the program. Specifically, theprogram executing section 70 executes the program so as to control thevideo reproducing section 20 via the disk reading section 50 and theswitching section 90. Moreover, the program executing section 70executes the program so as to generate bitmap data, and sends thegenerated bitmap data to the combining section 30. Note that, in thepresent embodiment, the program executed by the program executingsection 70 is not limited to such a program for generating the outputdata.

The switching section 90 carries out switching between targets fromwhich reproduction control information to be sent to the videoreproducing section 20 is supplied. Specifically, the switching section90 selects, in accordance with the control (reproduction controlswitching information) carried out by the general control section 80,either one of (i) reproduction control information sent from the generalcontrol section 80 and (ii) reproduction control information sent fromthe program executing section 70. Then, the switching section 90 sendsthe selected reproduction control information to the video reproducingsection 20.

The video reproducing section 20 decodes the video data sent from thedisk reading section 50, and sends the decompressed video data to thecombining section 30. Further, the video reproducing section 20 controlsthe program executing section 70 in accordance with the synchronizationtiming information sent from the disk reading section 50.

The combining section 30 combines (i) the bitmap data sent from theprogram executing section 70, with (ii) the decompressed video data sentfrom the video reproducing section 20. Then, the combining section 30outputs an image (combined image) obtained by the combining.

For simplicity of explanation, no output control section 40 described ineach of the foregoing embodiments is not provided in the presentembodiment; however, it is easy to provide such an output controlsection 40 in the video disk player 1′ of the present embodiment.

<Program Executing Section>

FIG. 20 is a function block diagram fully illustrating a structure ofthe program executing section 70.

As described above, the program executing section executes the programin accordance with the synchronization control signal received from thesynchronization control section 22. Specifically, the program executingsection 70 executes the program specified by a field action_id containedin the synchronization control signal received from the synchronizationcontrol section 22. Particularly in the present embodiment, the programexecuting section 70 executes the program for generating the image datato be overlaid with the video image.

As shown in FIG. 20, the program executing section 70 is made up of amemory 11, a CPU 12, a video reproduction control section 13, aninterrupt control section 14, a user input control section 15, aninterface 16, and a disk reading control section 17.

The memory 11 temporarily stores the program sent from the disk readingsection 50. The CPU 12 reads out the program stored in the memory 11,and executes the program. In accordance with how the program runs, theCPU 12 sends an instruction to the video reproduction control section13, or sends the bitmap data to the combining section 30.

The video reproduction control section 13 sends a control signal to thevideo reproducing section 20 in accordance with the program thusexecuted. Specific examples of the control signal include: (i) a controlsignal for controlling the reproduction such as reproduction start andreproduction suspending, and (ii) a control signal for acquiring a statesuch as current reproduction time. The interrupt control section 14receives an interrupt from outside of the program executing section 70,and sends the interrupt to the CPU 12. The CPU 12 launches an interrupthandler upon the reception of the interrupt from the interrupt controlsection 14. Note that various types of information supplied from themember having sent the interrupt are stored in a register (not shown) ofthe interrupt control section 14.

The user input control section 15 receives, as the interrupt, the userinput information transferred from the general control section 80, andsends the interrupt to the CPU 12. The CPU 12 launches the interrupthandler upon the reception of the interrupt from the user input controlsection 15. Note that various types of information supplied by way ofthe interruption are stored in a register (not shown) of the user inputcontrol section 15.

The interface 16 serves as an interface between the general controlsection 80 and the program executing section 70. Via the interface 16,the general control section 80 instructs the program executing section70 to read out and execute the program. In the meanwhile, when theexecution of the program is finished, the program executing section 70notifies the general control section 80 that the execution of theprogram is finished.

The disk reading control section 17 controls the disk reading section 50in accordance with an instruction sent from the CPU 12.

<General Control Section>

FIG. 21 is a functional block diagram fully illustrating a structure ofthe general control section 80.

As described above, the general control section 80 carries out generalcontrol over the video disk player 1′ in accordance with the programmanagement information read out by the disk reading section 50.

As shown in FIG. 21, the general control section 80 is made up of amemory 81, a user input control section 82, a CPU 83, a disk readingcontrol section 84, a switching control section 85, a video reproductioncontrol section 86, and a program execution control section 87.

The memory 81 temporarily stores the program management information sentfrom the disk reading section 50. The CPU 83 reads out the programmanagement information stored in the memory 81. In accordance with theprogram management information thus read out, the CPU 83 sends aninstruction to each of the user input control section 82, the diskreading control section 84, the switching control section 85, the videoreproduction control section 86, and the program execution controlsection 87.

The user input control section 82 simultaneously sends, to the programexecuting section 70 and the CPU 83, the user input sent from the userinput section 3. The CPU 83 interprets the user input in accordance withthe program management information so as to control the programexecution control section 87 and the video reproduction control section86.

The disk reading control section 84 controls the disk reading section 50in accordance with the instruction sent from the CPU 83.

The switching control section 85 controls the switching section 90 inaccordance with the instruction sent from the CPU 83.

The video reproduction control section 86 sends an control signal to thevideo reproducing section 20. Examples of the control signal includes:(i) a control signal for specifying video data to be reproduced; (ii) acontrol signal for starting the readout; (iii) a control signal forstarting the decoding; (iv) a control signal for ending the decoding;(v) a control signal for jumping to either a preceding chapter or asubsequent chapter; and (vi) a control signal for starting high speedreproduction.

The program execution control section 87 sends control information tothe program executing section 70 in accordance with the instruction sentfrom the CPU 83.

<Video Reproducing Section>

The video reproducing section 20 of the present embodiment issubstantially the same as that of Embodiment 1; however, they aredifferent in that the video reproducing section 20 of the presentembodiment includes no output control section 40. Therefore, the videoreproducing section 20 of the present embodiment does not control theoutput side buffer switching section 43 via the synchronization controlsection 22, unlike the one shown in FIG. 4.

<Program Management Information>

Explained here is a data structure of the program management informationstored in the optical disk 2, with reference to FIG. 22( a) and FIG. 22(b).

The program management information is made up of various types ofinformation required by the general control section 80 for the purposeof controlling the program execution. One program management informationitem is prepared for one program.

All the program information items stored in the optical disk 2 arestored in a program management table shown in FIG. 22( a). Indicated bynumber_of_pmi is the number of the program management information itemsstored in the program management table. Note that a first entry of theprogram management table indicates a program to be automaticallyexecuted in response to insertion of the optical disk 2.

FIG. 22( b) is an explanatory diagram illustrating a data structure ofthe program management information. As shown in FIG. 22( b), the programmanagement information is made up of fields program_file_name,playback_control_mode, is_video_specified, video_file_name, start_mode,resume_flag, and menu_flag.

The field program_file_name (program specifying information) is a fieldfor specifying the filename of a file storing the program.

The field playback_control_mode is a flag indicating whether or not auser input corresponding to the reproduction control manipulation issent from the general control section 80 to the video reproducingsection 20. In cases where the reproduction control manipulation is notsent thereto, the playback_control_mode is set at “0”. On the otherhand, in cases where the reproduction control manipulation is sentthereto, the playback_control_mode is set at “1”. Such a flag allows acontent creator to select whether (i) responsiveness to the reproductioncontrol manipulation carried out by the user is taken into greatconsideration, or (ii) freedom in the program takes priority over theresponsiveness. This will be described later.

The field is_video_specified is a flag indicating whether or not videodata to be reproduced concurrently with the execution of the program isspecified. In cases where the video data is not specified, the fieldis_video_specified is set at “0”. On the other hand, in cases where thevideo data is specified, the field is_video_specified is set at “1”. Incases where the flag is indicative of “1”, the field video_file_name andthe field start_mode come after the field is_video_specified.

The field video_file_name (content data specifying information) is afield for specifying the filename of the video data file to bereproduced concurrently with the execution of the program. As describedabove, the field video_file_name exists only when the fieldis_video_specified is indicative of “1”. In reference to the fieldvideo_file_name, the video data and the synchronization timinginformation can be read out from the optical disk 2 prior to theexecution of the program. Accordingly, time required in starting thereproduction of the video data can be shortened. This will be explainedlater.

The field start_mode (reproduction start instruction necessityinformation) is a flag indicating whether (i) display of the video dataspecified by the field video_file_name will be started by an instructioncontained in the program specified by the field program_file_name, or(ii) the display of the video data will be started irrespective of theprogram. In cases where the display of the video data specified by thefield video_file_name will be started by the instruction contained inthe program, the field start_mode is set at “0”. On the other hand, incases where the display of the video data will be started irrespectiveof the program, the field start_mode is set at “1”. As described above,the field start_mode exists only when the field is_video_specified isindicative of “1”. In reference to the field is_video_specified, it ispossible to judge whether or not the start of the reproduction of thevideo data depends on synchronization with the execution of the program.In cases where the start of the reproduction of the video data does notdepend on the synchronization, the time required in starting the videoreproduction can be further shortened. This will be explained later.

The field menu_flag is a flag indicating whether or not the programspecified by the program management information containing the fieldmenu_flag is a “menu content”. The menu content refers to a contentobtained by executing the program in response to the menu calling-upmanipulation carried out by the user. In cases where the program is sucha program that corresponds to the menu content, the field menu_flag isindicative of “1”. Otherwise, the field menu_flag is indicative of “0”.

The field resume_flag (resuming capability information) is a flagindicating whether or not the program specified by the programmanagement information containing the field resume_flag corresponds to atarget content to be resumed. The wording “resuming (resume)” refers toa function for resuming reproduction of a content from a point at whichprevious reproduction thereof was suspended due to the menu readoutcarried out by the user. The reproduction of the content is resumed whenthe user carries out manipulation of returning from the menu to theprevious reproduction condition. In cases where the program correspondsto the target content to be resumed, the field resume_flag is indicativeof “1”. Otherwise, the field resume_flag is indicative of “0”. A reasonwhy such a flag is required is explained as follows. That is, contentsare classified into the following two types (1) and (2): (1) a contentin which the program is executed in synchronization with the videoreproduction, and (2) a content in which the program is executed not insynchronization with the video reproduction. A specific example of thecontent (2) (latter one) is a content in which video is reproduced as apart of a game program. The content (1) (former one) can be resumed withease; however, it is difficult to resume the content (2). In light ofthis, the flag resume_flag is provided so as to allow the generalcontrol section 80 to easily distinguish the contents (1) and (2). Thismakes it possible that: a content which cannot be resumed by using theresuming function never becomes a target to be resumed, and the user isnotified that the content cannot be resumed.

<Data Allocation and File Structure>

FIG. 23 is an explanatory diagram illustrating data allocation in theoptical disk 2.

As shown in FIG. 23, the optical disk 2 is made up of a managementinformation region 61 and a video data region (content data storingregion) 62. The management information region 61 is made up of (i) aprogram management information storing region 61 c storing the programmanagement table, (ii) a program storing region (synchronization programstoring region) 61A storing the programs, and (iii) a synchronizationtiming information storing region 61B storing the synchronization timinginformation. The video data region 62 stores the video data. Note thatthe program management table, the synchronization timing information,the programs, and the video data are managed as files, individually.

The program management information is collectively stored in the programmanagement information storing region 61C of the optical disk 2, in theform of the program management table. All the program managementinformation is firstly read out in response to the insertion of theoptical disk 2, so that seeking time, etc., required for the readout ofthe program management information can be shortened.

<Reproducing Process>

Explained next is a reproducing process carried out by the video diskplayer 1′, with reference to FIG. 24.

FIG. 24 is a flowchart illustrating an entire flow of the reproducingprocess carried out by the general control section 80 of the video diskplayer 1′.

Firstly, the video disk player 1′ is powered ON, and then file systeminformation (not shown) is read out from the optical disk 2, andinitialization of the respective processing sections is carried out(S61).

Next, the program management table is read out from the programmanagement information storing region 61C, and the program managementtable thus read out is stored in the memory 81 (S62). The first one ofthe program management information in the program management tablestored in the memory 81 is selected as “current program managementinformation”.

Carried out next is a setting of the switching section 90 (S63).Specifically, in cases where the field playnback_control_mode of thecurrent program management information is indicative of “1”, theswitching section 90 is so set as to transfer, to the video reproducingsection 20, (i) the reproduction control information supplied from thegeneral control section 80, and (ii) the reproduction controlinformation supplied from the program executing section 70. On the otherhand, in cases where the field playnback_control_mode of the currentprogram management information is indicative of “0”, the switchingsection 90 is so set as to transfer, to the video reproducing section20, only the reproduction control information supplied from the programexecuting section 70.

Carried out next is check of the field is_video_specified contained inthe current program management information (S64). In cases where thefield is_video_specified is indicative of “1”, the general controlsection 80 issues, to the video reproducing section 20, an instructionfor starting the readout and the decoding of the video file (S65).Carried out in addition to this is setting for an operation to becarried out upon the completion of the display preparation.Specifically, the setting is carried out as follows. That is, in caseswhere the field start_mode is indicative of “0”, the setting is carriedout such that no display is carried out until the program gives aninstruction. On the other hand, in cases where the field start_mode isindicative of “1”, the setting is carried out such that the display iscarried out upon the completion of the preparation irrespective of theinstruction given from the program.

Next, the general control section 80 issues, to the program executingsection 70 via the program executing control section 87, an instructionfor executing the program file specified by the field program_file_name(S66).

Next, the general control section 80 waits for completion of theexecution of the program (S67). When the completion of the execution ofthe program is notified by the program executing section 70, the programmanagement information corresponding to the menu content is set as thecurrent program management information, and then the sequence jumps tothe step S63. A search for the program management informationcorresponding to the menu content is carried out by searching for theprogram management information which has the field menu_flag indicating“1”, and which is stored in the program management table of the memory81.

<Menu Calling-Up Process and Resuming Process>

Explained next is the menu calling-up process and the resuming processeach carried out by the video disk player 1′, with reference to FIG. 25and FIG. 26.

Firstly explained is the menu calling-up process with reference to FIG.25.

When the user carries out the menu calling-up manipulation during thereproduction of the content, a menu calling-up instruction is sent fromthe user input section 3 to the general control section 80. The generalcontrol section 80 thus having received the menu calling-up instructionchecks the field resume_flag of the program management informationcorresponding to the content currently being reproduced (S71). In caseswhere the field resume_flag is indicative of “0”, the user is notifiedthat the resuming cannot be carried out (S76). Then, the general controlsection 80 issues a reproduction halt instruction to the videoreproducing section 20 (S77).

On the other hand, in cases where the field resume_flag is indicative of“1” in the step S71, a halt instruction is issued to the videoreproducing section 20 (S72). Further, an instruction is issued so thata current value of the clock 23 (see FIG. 4) of the video reproducingsection 20 is stored in a register (resuming register; not shown) (S73).Further, the general control section 80 sets “resuming target programmanagement information” as the current program management information(S74).

Next, the general control section 80 issues a halt instruction to theprogram executing section 70 (S75).

Thereafter, the general control section 80 sets, as the current programmanagement information, the program management information correspondingto the menu content. Then, the menu content is executed in accordancewith the processes of the steps S63 through S66 shown in FIG. 24.

Explained next is the resuming process with reference to FIG. 26.

In cases where the user carries out the returning manipulation (resumingmanipulation) during the execution of the menu content, the generalcontrol section 80 sets, as the current program management information,the program management information set as the resuming target programmanagement information (S81). Next, the general control section 80instructs the program executing section 70 to specify the fieldprogram_file_name contained in the current program managementinformation, and to execute the program specified by the fieldprogram_file_name (S82). Next, the general control section 80 instructsthe video reproducing section 20 to (i) set, as the reproduction starttime point T, the value stored in the resuming register, and (ii)execute the interruption rerun process explained in Embodiment 2 withreference to FIG. 16 (S83). Further, the general control section 80instructs the video reproducing section 20 to start the reproductionfrom the point corresponding to the value stored in the resumingregister (S84). This allows realization of the resuming process.

On the other hand, consider a case where the user does not carry out theresuming manipulation and selects another content from displayed menu ofthe menu content. In this case, the general control section 80 issues,to the video reproducing section 20, an instruction for (i) deleting thevalue stored in the resuming register, and (ii) canceling the setting inthe resuming target program management information.

Note that the above processes can be carried out by using the apparatusstructure and the data structure together, each of which makes itpossible to reproduce the video data from an arbitrary point, and eachof which is explained in Embodiment 2.

<Specific Examples of the Program Management Information and theProcesses>

The following explains specific examples of (i) the program managementinformation and (ii) the processes of the present embodiment, withreference to FIG. 27.

Example 1 Video-Based Content

See the following example of a setting of the program managementinformation corresponding to the content, whereby video is reproducedwhen the content is selected, and the user can control the reproduction,and the program is executed in synchronization with the videoreproduction:

playback_control_mode=1

is_video_specified=1

start_mode=0

The following explains this setting. The user can control thereproduction. Therefore, the field playback_control_mode is set at “1”,for attainment of faster responsiveness to the reproduction controlmanipulation. Further, the video data to be reproduced is determined inadvance, so that the field is_video_specified is set at “1”. Further,there is the program to be executed in synchronization with the videoreproduction, so that the video reproduction needs to be started afterthe execution of the program starts. For this reason, the fieldstart_mode is set at “0”.

Explained next is a specific example of the process carried out on thisoccasion, with reference to FIG. 27.

Firstly, the general control section 80 carries out the initializingduring a period of time from time point T11 to time point T12. Then, thegeneral control section 80 instructs the video reproducing section 20 tostart the video reproduction, and instructs the program executingsection 70 to start the program execution. From the time point T12, thevideo reproducing section 20 starts to read out and decode the videodata. At time point T13, the preparation for the video display iscompleted.

Concurrently with the above processing carried out by the videoreproducing section 20, the program executing section 70 reads out theprogram, and prepares for the execution of the program, and startsexecuting the program. At time point T14 from which the videoreproduction starts, the program executing section 70 that is executingthe program issues a video reproduction start instruction to the videoreproducing section 20.

When the video data is reproduced to the end, the video reproducingsection 20 sends, to the program executing section 70, an interrupt forindicating the end of the video reproduction. In response to theinterrupt, the interrupt handler in the program causes a program endingprocess to be carried out, with the result that the end of the executionof the program is notified to the general control section 80.

As such, the structure of the present embodiment makes it possible thatthe program executing section 70 and the video reproducing section 20carry out concurrently the program execution preparation and the videodata reproduction preparation, respectively. Accordingly, time requiredin starting the video reproduction is shortened as compared with that inthe conventional technique.

In cases where the synchronization timing for the program does not comein the vicinity of the beginning of the video reproduction, the videoreproduction can be started before the completion of the programexecution preparation. Therefore, by setting the start_mode at 1,latency time between the time point T13 and T14 can be eliminated.Accordingly, the video reproduction can be started more quickly.

Further, at time point T15, the user carries out reproduction controlmanipulation “Reproduce from the next chapter”. The reproduction controlmanipulation is sent to the general control section 80, and then is sentdirectly from the general control section 80 to the video reproducingsection 20, i.e., is not sent thereto via the program executing section60. This makes it possible that the overhead due to the execution of theprogram becomes small, with the result that the responsiveness to theuser's manipulation is improved.

Example 2 Program-Based Content

A specific example of a program-based content in which video to bereproduced is just a part of the content is a game. See the followingexample of a setting of the program management information of such aprogram-based content:

playback_control_mode=0

is_video_specified=0

The following explains this setting. The field playback_control_mode isset at “0” such that the program freely controls the video reproduction.The video data to be reproduced depends on how the program runs, so thatthe video data to be reproduced is not determined in advance. For thisreason, the field is_video_specified is set at “1”.

With such a setting, time is required in starting the videoreproduction, as compared with that of Example 1; however, such asetting makes it possible to create a program having a high degree offreedom.

<Variation>

The data structure in the present embodiment is a data structure inwhich the field video_file_name of the program management informationcan specify only one filename; however, the data structure may be a datastructure in which the field video_file_name thereof can specify aplurality of filenames. Consider a case where the order of the filenamesspecified by the field video_file_name corresponds to the order of datato be reproduced. In this case, at an instant at which reproduction ofcertain video data is finished, the video reproducing section 20 canstart to read out, decode, and reproduce the next video data. Thisallows such an additional effect that an interlude is short between thereproduction of the video data and the reproduction of the next videodata of the content having such a plurality of video data to bereproduced continuously.

In the present embodiment, when the menu calling-up is carried outduring the reproduction of the content corresponding to the fieldresume_flag indicating “0”, a warning is given so as to notify that thereproduction of the content cannot be resumed. In addition, a warningmay be given in response to a manipulation other than the menucalling-up, such as an attempt of the resuming.

In the present embodiment, the general control section 80 simultaneouslyissues (i) the reproduction preparation start instruction to the videoreproducing section 20, and (ii) the program execution start instructionto the program executing section 70. However, the issuing is notnecessarily carried out simultaneously. For example, consider a casewhere the video reproducing section 20 is not used during reproductionof a content which consists of a program and which does not have anyvideo data to be reproduced. In this case, the video reproductionpreparation for the content coming just after the content is caused tostart during the reproduction of the content consisting of the program.Accordingly, the latency time required in starting the videoreproduction can be further shortened. In this case, a flag indicatingwhether or not the program specified by the field program_file_name ofthe program management information causes the video reproduction to becarried out may be added such that the general control section 80 caneasily judge whether or not the program causes the video reproduction tobe carried out.

Further, in the present embodiment, in cases where a filename of a videodata file is specified by the field video_file_name of the programmanagement information, the video reproducing section 20 is instructedto start reading out and decoding the video data file; however, the diskreading section 50 may be instructed to start reading out the video datafile, instead. In this case, the readout of the video data from theoptical disk 2 can be carried out concurrently with the programexecution preparation, with the result that the video reproduction canbe started more quickly.

Further, in the present embodiment, the general control section 80interprets and transmits the various types of information contained inthe program management information; however, another function block suchas the program executing section 70 may interpret and transmit thevarious types of information. In cases where the program executingsection 70 carries out the interpretation, the program managementinformation corresponding to a program a is stored in another program b.Therefore, just before executing the program a, the program executingsection 70 interprets and transmits the program management informationwhich corresponds to the program a, and which is contained in theprogram b This makes it possible to realize the same function as that inthe case where the general control section 80 carries out theinterpretation and the transmission. In other words, the feature of thepresent invention lies in that program management information relevantto a program is stored in a place irrelevant to the program.

In the above case, the program management information corresponding tothe program is stored in the different program. On the other hand, inthe present embodiment, the program management information is allocatedto a place other than any programs. Such allocation allows the followingadditional effect: no works such as rewriting of an existing program andre-compiling are required even when changing the order in which theprograms are executed.

Further, the present embodiment assumes that an entire part of one videodata is reproduced by executing a program; however, a part of the videoprogram can be reproduced. In this case, a field indicating reproductionstart time and reproduction end time of the video data is added to theprogram management information. This makes it possible to reproducevarious parts of one video data.

Further, the switching control section 85 and the switching section 90are provided in the present embodiment; however, the switching controlsection 85 and the switching section 90 are not required when handlingonly the video-based content. Even in this case, the program can beexecuted in synchronization with the video reproduction. Moreover, inthis case, overhead is never caused by the program in response to thereproduction control manipulation. This attains the effect of thepresent invention, i.e., the responsiveness to the user's reproductioncontrol manipulation is improved.

Further, when the video data is reproduced to the end, the videoreproducing section 20 send, to the program executing section 70, theinterrupt indicating the end of the video reproduction; however, thevideo reproducing section 20 may directly notify the general controlsection 80 that the video reproduction is finished. In this case, thefollowing procedures are carried out upon the end of the videoreproduction: the end of the video reproduction is notified to thegeneral control section 80, and the general control section 80 issues aprogram execution ending instruction to the program executing section 70in response to the notification. This makes it possible to avoid such atrouble that the execution of the program is not terminated, due to adefect in the interrupt handler of the program, upon the reception ofthe interrupt indicating the end of the video reproduction. Accordingly,the following additional effect is obtained: the execution of theprogram is securely terminated.

Further, the notification may be given to either the program executingsection 70 or the general control section 80, depending on whether thecontent is the video-based content or the program-based content.

Embodiment 5

Another embodiment of the present invention will be explained below withreference to FIG. 28 through FIG. 33. For ease of explanation, materialshaving the equivalent functions as those shown in the drawingspertaining to Embodiments 1, 2, 3, and 4 will be given the samereference symbols, and explanation thereof will be omitted here.Further, the wordings defined in Embodiments 1, 2, 3, and 4 are used inthe present embodiment in accordance with the definition made inEmbodiments 1, 2, 3, and 4, unless otherwise noted.

<System Structure>

FIG. 28 is a function block diagram schematically illustrating astructure of a video disk player 1″ according to the present embodiment.

The video disk player 1″ (reproducing apparatus) is an apparatus forreproducing AV data stored in an optical disk 2. As shown in FIG. 28,the video disk player 1″ includes a user input section 3, a videoreproducing section 20, a combining section 30, a disk reading section50, a program executing section 70, and a general control section 80′.

The general control section 80′ carries out general control over thevideo disk player 1″. Specifically, the general control section 80controls the program executing section 70 in accordance with programmanagement information read out by the disk reading section 50. Further,the general control section 80 transfers, to the program executingsection 70, a user input sent from the user input section 3. Further,the general control section 80′ verifies, in accordance with informationsupplied from the video reproducing section 20 by way of theinterruption, whether or not the video data reproduction carried out bythe currently executed program is approved by the copyright holder ofthe video data.

The program executing section 70 executes programs. Specifically, theprogram executing section 70 executes each of the programs so as tocontrol the disk reading section 50 and the video reproducing section20. Moreover, the program executing section 70 executes the program soas to generate bitmap data, and sends the generated bitmap data to thecombining section 30. Note that, in the present embodiment, the programexecuted by the program executing section 70 is not limited to such aprogram for generating the output data.

The video reproducing section 20 decodes video data (content data) sentfrom the disk reading section 50, and sends the decompressed video datato the combining section 30. Further, the video reproducing section 20controls the program executing section 70 in accordance withsynchronization timing information sent from the disk reading section50. Further, the video reproducing section 20 uses an interruptconcerning the video data so as to supply, to the general controlsection 80′, information for verifying whether or not the reproductionof the video data corresponding to the program currently being executedis approved by the copyright holder of the video data.

The disk reading section 50, the combining section 30, and the userinput section 3 are the same as those of Embodiment 4, respectively. Forthis reason, explanation thereof is omitted here.

For simplicity of explanation, the output control section 40 and theswitching section 90 described in the foregoing embodiments are notprovided in the present embodiment; however, it is easy to provide theoutput control section 40 and/or the switching section 90 in the videodisk player 1″ of the present embodiment.

<Program Executing Section>

The program executing section 70 of the present embodiment is the sameas that of Embodiment 4, so that explanation thereof is omitted.

<General Control Section>

FIG. 29 is a function block diagram fully illustrating a structure ofthe general control section 80′.

As described above, the general control section 80′ carries out thegeneral control over the video disk player 1″ in accordance with theprogram management information read out by the disk reading section 50.

As shown in FIG. 29, the general control section 80′ is made up of amemory 81, a user input control section 82, a CPU 83, a disk readingcontrol section 84, a verifying section 88, an interrupt control section89, and a program execution control section 87.

The memory 81 temporarily stores the program management information sentfrom the disk reading section 50. The CPU 83 reads out the programmanagement information stored in the memory 81. In accordance with theprogram management information thus read out, the CPU 83 sends aninstruction to each of the user input control section 82, the diskreading control section 84, the verifying section 88, the interruptcontrol section 89, and the program execution control section 87.

The user input control section 82 simultaneously sends, to the programexecuting section 70 and the CPU 83, the user input sent from the userinput section 3. The CPU 83 interprets the user input in accordance withthe program management information so as to control the programexecution control section 87.

The disk reading control section 84 controls the disk reading section 50in accordance with the instruction sent from the CPU 83.

The interrupt control section 89 handles an interrupt sent from thevideo reproducing section 20. In response to the interrupt, theinterrupt control section 89 acquires information for verifying whetheror not the copyright holder of the video data approves reproduction ofvideo data that corresponds to the currently executed program and thatis set in a register (not shown) of the interrupt control section 89 bythe video reproducing section 20. Specifically, the interrupt controlsection 89 acquires (i) a video data filename for specifying the videodata stored in the optical disk 2, and (ii) public key data attached tothe video data.

In accordance with (i) the video data filename, (ii) the public keydata, and (iii) certificate data contained in the program managementinformation, the verifying section (verifying means) 88 verifies whetheror not the reproduction of the video data corresponding to the currentlyexecuted program is approved by the copyright holder of the video data.A method for the verification will be described later.

<Video Reproducing Section>

The video reproducing section 20 of the present embodiment issubstantially the same as that of Embodiment 1; however, they aredifferent from each other in the following points.

Firstly, no output section 40 is provided in the present embodiment.Therefore, the video reproducing section 20 of the present embodimentdoes not control the output side buffer switching section 43 via thesynchronization control section 22, unlike the one shown in FIG. 4.

Secondly, when starting the reproduction of the video data, the videoreproducing section 20 of the present embodiment extracts, from thevideo data, the public key data attached to the video data. Then, thevideo reproducing section 20 notifies, by way of an interrupt, thegeneral control section 80′ of (i) the extracted public key data, and(ii) the filename of the target video data to be reproduced.

<Program Management Information>

Explained here is a data structure of the program management informationstored in the optical disk 2, with reference to FIG. 30( a) and FIG. 30(b).

The program management information is made up of various types ofinformation required by the general control section 80′ for the purposeof controlling the program execution. One program management informationitem is prepared for one program. All the program management informationitems contained in the optical disk 2 are stored in a program managementtable shown in FIG. 22( a).

FIG. 30( a) is an explanatory diagram illustrating the data structure ofeach of the program management information items. As shown in FIG. 30(a), the program management information is made up of fieldsprogram_file_name, number_of video_info, and video_info( ).

The field program_file_name (program specifying information) is a fieldfor specifying a filename of a file storing a program.

The field number_of_video_info is a field for specifying the number ofthe below-mentioned fields video_info( ).

The field video_info( ) is a data block for storing informationconcerning the video data to be used by the program corresponding to theprogram management information containing the field video_info( ). Thefield video_info( ) is made up of two fields video_file_name andcertificate, each of which is shown in FIG. 30( b).

The field video_file_name (content data specifying information) is afield for storing the filename of the video data.

The field certificate (authorization information; approval information)is a field for storing certificate data representing approval(authorization) of the reproduction of the video file specified by thefield video_file_name contained in the field video_info( ) containingthe field certificate.

The following explains (i) a procedure of creating the certificate data,and (ii) a procedure of verifying the certificate, with reference toFIG. 31( a) and FIG. 31( b).

Explained first is the procedure of creating the certificate data, withreference to FIG. 31( a).

Firstly, the copyright holder of the video data creates public keys(verification-use information) and a private key (secret key) inaccordance with a public key encryption method. Each of the public keys,and the private key constitute a pair. Note that, in the presentembodiment, the RSA method is used as the public key encryption method;however, the present invention is not limited to this. A program creatorsubjects the program to a hash process, and submits a hash value to thecopyright holder of the video data. The copyright holder of the videodata encrypts the hash value by using the private key, and then submits,to the program creator, a result obtained through the encryption. Theresult serves as the certificate.

The certificate is stored in the field certificate of the aforementioneddata block video_info( ), so that the certificate is recorded onto theoptical disk 2. Meanwhile, the public keys are multiplexed in the targetvideo data with predetermined intervals therebetween, so that the publickeys are recorded onto the optical disk 2.

Explained next is the procedure of verifying the certificate data, withreference to FIG. 31( b).

Firstly, each of the public keys is extracted from the video data. Then,the field certificate corresponding to the video data is extracted fromthe program management information so as to be decrypted (decoded) bythe aforementioned public key. A result obtained through the decryptionis compared with the result obtained by carrying out the hash processwith respect to the program.

In cases where the field certificate is not encrypted with the privatekey corresponding to the public key, the field certificate cannot bedecrypted accurately. This is a characteristic of the public keyencryption. Therefore, in cases where the results coincide with eachother, the program is judged as a program approved to use the videodata. On the other hand, in cases where the results do not coincide witheach other, the program is judged as a program using the video datawrongly.

Because the public keys are multiplexed in the video data withpredetermined intervals therebetween as described above, the pickupnever travels for the readout of the public keys. On this account, whenstarting the video reproduction, no latency time is caused due to thereadout of the public keys. This makes it possible to shorten a responsetime in starting the reproduction.

<Data Allocation and File Structure>

A data allocation and a file structure of the present embodiment are thesame as those of Embodiment 4, so that explanation thereof is omitted.

<Reproducing Process>

Explained next is a reproducing process carried out by the video diskplayer 1″, with reference to FIG. 32.

FIG. 32 is a flowchart illustrating an entire flow of the reproducingprocess carried out by the general control section 80′ of the video diskplayer 1″.

Firstly, the video disk player 1″ is powered ON, and then file systeminformation (not shown) is read out from the optical disk 2, andinitialization of the respective processing sections is carried out(S91).

Next, the program management table is read out from the programmanagement information storing region 61C (see FIG. 23), and the programmanagement table thus read out is stored in the memory 81 (S92).

Next, the general control section 80′ issues, to the program executingsection 70 via the program execution control section 87, an instructionof executing the program file specified by the field program_file_name(S93). On this occasion, the hash value of the program file specified bythe field program_file_name is calculated, and is stored in the memory81 for the sake of the below-mentioned verifying process.

Next, the general control section 80 waits for completion of theexecution of the program (S94). When the general control section 80receives, from the program executing section 70, an interrupt indicatingthe completion of the execution of the program, the program managementinformation corresponding to the menu content is set as current programmanagement information. Then, the sequence jumps to the step S93.

<Verifying Process>

Explained next is the verifying process carried out by the video diskplayer 1″, with reference to FIG. 33. As described above, the verifyingprocess refers to the process for checking whether or not thereproduction of the video data corresponding to the program currentlybeing executed is approved by the copyright holder of the video data.

FIG. 33 is a flowchart illustrating a flow of the verifying processcarried out by the general control section 80′. Note that each of thefollowing processes is carried out in response to the interruptioncarried out by the video reproducing section 20.

The CPU 83 acquires (i) the filename of the target video data set, bythe video reproducing section 20, in the register (not shown) of theinterrupt control section 89; and (ii) the public key extracted from thevideo data (S101).

Next, by using the filename of the video data as a key, the CPU 83searches for a relevant entry video_info( ) in the program managementinformation stored in the memory 81 (S102). In cases where such an entryvideo_info( ) is contained in the program management information (YES inS102), the field certificate contained therein is sent to the verifyingsection 88. In cases where no relevant entry is not contained in theentry video_info( ) (NO in S103) on this occasion, the CPU 83 judgesthat the video reproduction is not approved, and terminates theexecution of the program (S106).

In the meanwhile, in cases where the relevant entry video_info( ) is notcontained in the program management information (NO in S102), the CPU 83terminates the execution of the program (S106).

On the other hand, in cases where the field certificate is contained inthe entry video_info( ) (YES in S103), the following process is carriedout.

The CPU 83 extracts the field certificate from the entry video_infocorresponding to the filename of the video data. Next, the CPU 83extracts, from the memory 81, (i) the previously found hash value of thecurrently executed program and (ii) the public key, and sends the hashvalue, the public key, and the field certificate to the verifyingsection 88, and instructs the verifying section 88 to start theverification (S104).

The verifying section 88 carries out the verification in accordance withthe procedures shown in FIG. 31( b). Specifically, the verifying section88 compares (i) the value obtained by decrypting the field certificatewith the public key, with (ii) the hash value. In cases where the valuesdo not coincide with each other, the verifying section 88 notifies theCPU 83 that the values do not coincide with each other. When the CPU 83is notified that the values do not coincide with each other, the CPU 83judges that the video reproduction is not approved (NO in S105), andterminates the execution of the program (S106). In contrast, when theverifying section 88 notifies the CPU 83 that the values coincide witheach other, the CPU 83 judges that the video reproduction is approved(YES in S105), and continues the execution of the program.

The aforementioned data structure, the apparatus structure, and theprocess procedures make it possible to restrain the reproduction that isnot approved by the copyright holder of the video data.

<Variation>

The public key encryption method is used in the present embodiment;however, it is easy for the copyright holder of the video data to checkthe disapproved use of the video data by using only the fieldvideo_file_name, i.e., without using the public key encryption method.The following explains a reason of this.

In cases where such information as the public key is not contained, thedisapproved use of the video data by a program cannot be found until theprogram is executed. In cases where the program is large, it takes along time to track back entire processing thereof. Further, in caseswhere the program creator intentionally made the program such that it isdifficult to find a program part causing the disapproved reproduction,it is ineffective to use a method for detecting such a program part inaccordance with the binary data of the program file.

However, the copyright holder of the video data can check thedisapproved use of the video data, even when the program is notexecuted. In other words, the disapproved use of the video data can bechecked by merely checking the static information video_file_name thatis not contained in the program. This can be achieved by arranging thevideo disk player 1″ such that only video data whose use is declared inthe field video_file_name can be reproduced.

Further, in the present embodiment, the verification is started afterthe video reproducing section 20 starts reading out the video data;however, video data whose use is not declared in the fieldvideo_file_name may be prohibited from being reproduced. Further, in thepresent embodiment, the program executing section 70 and the videoreproducing section 20 make direct access to files; however, the accessto the files may be carried out via a file system provided between (i)each of the program executing section 70 and the video reproducingsection 20, and (ii) the disk reading section 50. In this case, the filesystem section may be arranged such that the video data whose use is notdeclared in the field video_file_name cannot be referred as a file.

This makes it possible to detect the disapproved reproduction of thevideo data whose use is not declared in the field video_file_name,before reading out the video data. Accordingly, time required for thedetection is shortened.

Further, the present embodiment explains the case where one program iscorrelated with one video data; however, in the present invention, aplurality of programs may be correlated with a plurality of video data,and one program may correspond to a plurality of video data to bereproduced, and a plurality of programs may correspond to one video datato be reproduced.

In the present embodiment, one video data corresponding to the programis entirely reproduced; however, it is easy to arrange the video diskplayer 1″ such that a part, corresponding to the program, of the videodata is reproduced. This can be achieved by adding, to the entryvideo_info( ), a field indicating reproduction start time/reproductionend time of the video data.

Further, one pair made up of the public key and the private key is usedin one video data; however, a different pair made up of a public key anda private key may be used in a part of the video data.

For example, consider an optical disk containing (i) contents a and brespectively provided by content providers A and B, (ii) a menu contentc which is provided by a content provider C and which introduces thecontents a and b. In this case, a different pair made up of a public keyand a private key is used in a part, which is allowed to be used for thecontent c, of each of the contents a and b. The private key of thedifferent pair is used for preparation of the field certificate of aprogram of the content c, i.e., is used for encryption of the fieldcertificate. The field certificate thus prepared is recorded onto theoptical disk, with the result that only the required part can be allowedto be reproduced by using the program of the menu content c forintroducing the contents a and b.

Further, in the present embodiment, the verification using the publickey and the field certificate is carried out for the reproduction of allthe video data; however, it is easy to arrange the video disk player 1″such that the verification is carried out with respect to only the videodata which the copyright holder of the video data consider it necessaryto verify.

For example, consider a case where the public key data is multiplexedonly in the video data required to be verified. In this case, the videodisk player 1″ is arranged as follows. That is, when reproducing videodata in which no public key data is multiplexed, the video reproducingsection 20 notifies, to the general control section 80′, the filename ofthe video data. In addition, the general control section 80′ checkswhether or not the public key is contained in the video data. Thechecking is carried out after the step S102 and before the step S103shown in FIG. 33. In cases where no public key is found, the verifyingprocess is terminated. As such, the verification is carried out onlywith respect to the video data which the copyright holder of the videodata considers it necessary to verify. This makes it possible to omitthe verification of the video data which does not need to be verifiedwith the use of the public key and the field certificate. Accordingly,processing speed is improved, and power consumption is reduced. Theseare additional effects.

In the present embodiment, the video data is not encrypted; however, thevideo data may be encrypted for prevention of unauthorized copy thereof.In this case, the key for encrypting the video data, and the key forverifying the video reproduction are different. On this account, evenwhen one of the keys is decrypted wrongly, the other key protects thevideo data from being wrongly reproduced.

Further, in the present embodiment, the public key for use in verifyingthe program is multiplexed in the video data; however, the public keymay be provided in any place other than the video data, as long as noone but the content provider surely can prepare the public key.

For example, consider a case where one video management information itemis prepared for one video data. In this case, the public key (public keya) is stored in the video data management information, and anotherpublic key (public key b) is multiplexed in the video data. Moreover, ahash value, encrypted by using the private key corresponding to thepublic key b, of the video data management information is added to thevideo data management information as the verification-use data. Thismakes it possible to verify, upon the reproduction, that the video datamanagement information is not unauthorized one. Accordingly, the publickey a contained in the video data management information is verified asan authorized (approved) one.

Further, in the present embodiment, the program and the video data arestored in the same read-only recording medium; however, the presentinvention is applicable to (i) a case where the program and the videodata are stored in different media, and (ii) a case where the programand the video data are stored in a re-writable recording medium.

For example, consider a case where an additional program correspondingto the optical disk 2 is downloaded with the use of a network connectionfunction additionally rendered to the video disk player 1″, and isstored in a recording medium additionally provided in the video diskplayer 1″. A specific example of the recording medium is a hard disk. Inthis case, an unauthorized program is likely to be downloaded from aserver of the network, or an authorized program stored in the hard diskis likely to be wrongly tampered. However, the use of the presentinvention makes it possible to prevent such an unauthorized program fromcausing the video data of the optical disk 2 to be reproduced withoutany approval.

Further, the general control section 80′ is provided in the presentembodiment; however, no general control section may be provided as isthe case with Embodiment 1. In this case, the program executing sectioncarries out the verification.

In the present embodiment, the hash value of the program is encrypted;however, the present invention is not limited to this as long as adifferent program is surely correlated with a different value.

Embodiment 6

Another embodiment of the present invention will be explained below withreference to FIG. 18. The present embodiment is similar to Embodiment 4,so that only difference therebetween is explained.

<Synchronization Timing Information>

The present embodiment has the same data structure as the data structureshown in FIG. 18. However, meanings respectively rendered to the fieldsare different as follows.

Firstly, a value ALWAYS which does not specify an interrupt timing isdefined in the field timing. In cases where the field timing has a valuecoinciding with the value ALWAYS, the sub fields in the field condition() are interpreted as interruption execution conditions, respectively.For example, in cases where the sub field normal is indicative of “1”,interruption is carried out in accordance with the entry sync_info( )containing the sub field normal, at the moment at which thesynchronization control section 22 is brought into the normalreproduction state from the other reproduction state.

<Video Reproducing Section>

When the synchronization control section 22 is brought into areproduction state, the synchronization control section 22 checks theentry sync_info( ) in which the field timing has a value correspondingto the value ALWAYS, and carries out the interruption in accordance withthe value of the field condition ( ).

Such a structure makes it possible to carry out the process inaccordance with the change of the reproduction state. For example, aspecial graphics is displayed only during the fast-forwarding. Thisallows the user to enjoy the content repeatedly, with the result that anadditional value of the content is improved.

In the present embodiment, the process is carried out in thereproduction state resulted from the change of the reproduction state.However, the process may be carried out in a reproduction state selectedbefore the change of the reproduction state. Moreover, the process maybe carried out in each of the reproduction states.

The invention being thus described, it will be obvious that the same waymay be varied in many ways. Such variations are not to be regarded as adeparture from the spirit and scope of the invention, and all suchmodifications as would be obvious to one skilled in the art are intendedto be included within the scope of the following claims.

In each of the foregoing embodiments, the video data is directlyreferred in accordance with the program and the program managementinformation; however, the present invention is not limited to this. Forexample, the video disk player may make a reference to either (i) videodata management information containing various types of informationconcerning the video data, or (ii) play list information indicating anorder in which the video data is reproduced. Examples of the varioustypes of information concerning the video data include: attributioninformation, random access information, and the like.

In each of the foregoing embodiments, the video data, thesynchronization timing information, and the program are stored in theoptical disk; however, the video data, the synchronization timinginformation, and the program may be stored in either (i) anotherrecording medium such as a hard disk, or (ii) another recording mediumconnected to the video disk player via a network.

In each of the foregoing embodiment, the program and the synchronizationtiming information are managed by using different files, respectively;however, the program and the synchronization timing information may bemanaged by using the same file. In this case, the synchronization timinginformation is sent from the program executing section to the videoreproducing section, unlike the foregoing embodiments. Accordingly, thenumber of files to be read out is reduced, with the result that theoverhead is reduced. This is an additional effect.

The foregoing embodiments assume that the outputs respectively sent fromthe program executing section and the video reproducing section, i.e.,the outputs to be combined together are images; however, a structuresimilar to the above structure is applicable to the case of combiningsounds (audio).

The foregoing embodiments assume that the program executing sectionexecutes a versatile program; however, the present invention is notlimited to this. For example, even when the program executing section isa process section having a single function such as a function ofcarrying out a still image slide show reproduction, the effects of thepresent invention can be exhibited. The effects of the present inventionalso can be exhibited even when the program executing section is a WEBbrowser and deals with a combination of the HTML (Hyper Text MarkupLanguage) and the ECMA Script.

The foregoing embodiments assume that each of the processes executed bythe program (synchronization executing program) and the interrupthandler is a process of outputting an image; however, the process may beany process executed at a certain timing in synchronization with thereproduction of the video data. Note that the process excludes a processof using the output control section for the purpose of carrying outoutput control of an image and a sound each generated by the programexecuting section. Specifically, a specific example of the processincludes: (i) a process of (a) reading out data from the recordingmedium and (b) writing data therein; (ii) a process of making access toa network; or (iii) a process of incrementing a variable in the program.

In the foregoing embodiments, the program executing section and theoutput control section are controlled in accordance with thesynchronization timing information; however, both the program executingsection and the output control section are not necessarily controlled inaccordance with the synchronization timing information. For example, thecontrol can be carried out at a frame rate, even when only the outputcontrol section is controlled in accordance with the synchronizationtiming information and when the program executing section uses anindividual clock so as to set a timing at which the bitmap image isgenerated. Further, even when no output control section is provided andonly the program is executed, no overhead occurs due to the pollingprocess.

In the foregoing embodiments, only the switching of the display buffermemories of the output control section is carried out in accordance withthe field action_id; however, the present invention is not limited tothis.

Further, the foregoing embodiments assume that the program executingsection and the output control section are targets to be controlled;however, the combining section may be the target to be controlled. Inthis case, a specific example of the control over the combining sectionis a control of changing an order of display planes; or the like.

FIG. 34 is an example of another structure of the video disk player 1.In the foregoing embodiments, the output control section switches theimages generated by using the program executing section; however, thepresent invention is applicable to any structure as long as the imageoutputting and the sound outputting are controlled in accordance withthe synchronization timing information. FIG. 34 illustrates one exampleof such a structure. In this example, the video reproducing section 20receives data obtained by multiplexing bitmap data with video data, andoutputs decompressed video data and the bitmap data. Therefore, thevideo reproducing section 20 includes two decoders: (i) a decoder forgenerating the decompressed video data, and (ii) a decoder (outputgenerating means) for generating the bitmap data (second output data).The decoders operate in accordance with a clock generated by the clock23. Further, the output control section 40 controls the outputting ofthe bitmap data, which outputting is carried out by the videoreproducing section 20. Moreover, the output control section 40 causesthe synchronization timing information to be supplied from the programexecuting section 10 to the video reproducing section 20. Such astructure makes it possible to control, at the video frame precision,the outputting of the bitmap data generated by using the program.

Further, the foregoing embodiment uses the two display buffer memories;however, the present invention is not limited to this. The effects ofthe present invention can be exhibited even when using one or not lessthan three display buffers.

In the foregoing embodiments, one block, i.e., the program executingsection is used to output the image concurrently with the videoreproducing section; however, the effects of the present invention canbe exhibited even when a plurality of image outputting blocks are used.

In the foregoing embodiments, the video reproducing section carries outthe control in accordance with the synchronization timing information;however, the present invention is not limited to this. The effects ofthe present invention can be exhibited as long as a component using thesame clock as that of the video reproducing section is used.

In the foregoing embodiments, the value of the field merged_flag of theentry sync_info( ) is set at “1” so as to specify a mergedsynchronization executing program allowing the same result as a resultobtained by executing a plurality of synchronization executing programs;however, the present invention is not limited to this. For example, thevalue of the field merged_flag may be set so as to specify either (i) aprogram for displaying a warning, or (ii) a program for displaying, whenstarting the reproduction from a certain point of the video, a graphicsdifferent from a graphics displayed when starting the video from thebeginning.

The reproducing apparatus of the present invention may be arranged suchthat: the data acquiring means acquires an arbitrary-point reproductionsynchronization executing program, which is executed only when startingreproduction from a certain point of the content data, and thesynchronization timing information including the timing specifyinginformation includes (i) an action specifying information itemindicating a synchronization executing program to be executed, and (ii)an arbitrary-point reproduction synchronization executing programidentifying information item (e.g., setting a value other than “1” atthe field merged_flag) indicating whether or not the synchronizationexecuting program specified by the action specifying information is thearbitrary-point reproduction synchronization executing program, and forstarting reproduction from a certain point of the content data, thesynchronization control means transmits the synchronization controlsignals in accordance with (I) a synchronization timing information itemthat includes a timing specifying information item indicating a timepoint which comes before but is closest to a time point from which thereproduction is started, and that includes an arbitrary-pointreproduction synchronization executing program identifying informationitem indicating that the synchronization executing program to beexecuted is the arbitrary-point reproduction synchronization executingprogram, and (II) synchronization timing information items that includetiming specifying information items each indicating a time point whichcomes after the time point specified by the synchronization timinginformation item (I), and that include arbitrary-point reproductionsynchronization executing program identifying information items eachindicating that the synchronization executing program to be executed isthe arbitrary-point reproduction synchronization executing program, thesynchronization control signals being transmitted in order from asynchronization control signal corresponding to earliest one of the timepoints respectively specified by the timing specifying informationitems. Note that the arbitrary-point reproduction synchronizationexecuting program, and the other synchronization executing programs maybe stored in the same optical disk.

This makes it possible to obtain different outputs depending onreproduction start time points, with the result that the user can enjoythe content repeatedly. This allows improvement of the additional valueof the content. In other words, this makes it possible to create acontent which renders a result different from a result obtained whenintentionally starting the reproduction from such a certain point.

The reproducing apparatus of the present invention may include the firstoutput generating section and the second output generating section, andthe means for controlling outputting of the second generating section inaccordance with the synchronization timing information and the clock ofthe first output generating section.

Further, the reproducing apparatus of the present invention may bearranged such that the synchronization timing information is separatedfrom the information for use in generating the output of the firstoutput generating section.

The reproducing apparatus of the present invention may be arranged suchthat the synchronization timing information at least include (i)information indicative of a time point in a time period of the firstoutput generating section, and (ii) either one of (a) informationindicative of a control target or (b) information indicative of whatcontrol is to be carried out.

Further, the reproducing apparatus of the present invention may bearranged such that: the first output generating section is a videoreproducing section, and the second output generating section is aprogram executing section.

Further, the reproduction method of the reproducing apparatus, whichincludes the first output generating section and the second outputgenerating section, of the present invention may include: (i) a step ofcomparing the synchronization timing information with the clock of thefirst output generating section; and (ii) a step of outputting thecontrol signal in accordance with the comparison result.

Further, the recording medium of the present invention may be arecording medium which stores (i) the information for use in generatingthe output of the first output generating section; (ii) the informationfor use in generating the output of the second output generatingsection; and (iii) the synchronization timing information forcontrolling the outputting of the second output generating section inaccordance with the clock of the first output generating section.

Further, the recording medium of the present invention may be arrangedsuch that the timing information is stored in the vicinity of theinformation for use in generating the output of the second outputgenerating section.

Further, the recording medium of the present invention may be arrangedsuch that the timing information and the program are stored in the samefile.

Here, the blocks of each of the video disk players 1, 1′ and 1″ may beconstituted by hardware logic, or by software with the use of a CPU asfollows.

That is, each of the video disk players 1, 1′, and 1″ has: (i) the CPU(central processing unit) for executing an instruction of a controlprogram realizing various functions; (ii) a ROM storing the program;(iii) a RAM for expanding the program; (iv) a storage device (storagemedium) such as a memory storing the program and various data; and (v)the like. The object of the present invention also can be achieved by(i) providing, for each of the video disk players 1, 1′, and 1″, astorage medium storing, in a computer readable manner, a program code(executable program; intermediate code; source program) of the controlprogram for the video disk players 1, 1′, and 1″, and (ii) causing acomputer (CPU or MPU) to read and execute the program code stored in thestorage medium, the program code being the software realizing theaforementioned functions.

Examples of the storage medium are: (i) tapes such as a magnetic tapeand a cassette tape; (ii) magnetic disks such as a Floppy® disk and ahard disk; (iii) optical disks such as a CD-ROM (compact disk read onlymemory), a magnetic optical disk (MO), a mini disk (MD), a digital videodisk (DVD), and a CD-R (CD-Rewritable); (iv) cards such as an IC card(inclusive of a memory card) and an optical card; and (v) semiconductormemories such as a mask ROM, an EPROM (electrically programmable readonly memory), an EEPROM (electrically erasable programmable read onlymemory), and a flash ROM.

Each of the video disk player 1, 1′, and 1″ may be connectable to thecommunication network, and the program code may be supplied via thecommunication network. The communication network is not particularlylimited. Specific examples thereof are: the Internet, Intranet,Extranet, LAN (local area network), ISDN (integrated services digitalnetwork), VAN (value added network), CATV (cable TV) communicationnetwork, virtual private network, telephone network, mobilecommunication network, satellite communication network, and the like.Further, the transmission medium constituting the communication networkis not particularly limited. Specific examples thereof are: (i) a wiredchannel using an IEEE 1394, a USB (universal serial bus), a power-linecommunication, a cable TV line, a telephone line, a ADSL line, or thelike; or (ii) a wireless communication using IrDA, infrared rays usedfor a remote controller, Bluetooth®, IEEE 802.11, HDR (High Data Rate),a mobile phone network, a satellite connection, a terrestrial digitalnetwork, or the like. Note that, the present invention can be realizedby (i) a carrier wave realized by electronic transmission of the programcode, or (ii) a form of a series of data signals.

Finally, a reproducing apparatus according to the present inventionincludes: data acquiring means for acquiring content data andsynchronization timing information items; clock generating means forgenerating a clock signal; decoding means for converting, in accordancewith the clock signal, the content data into reproduction data forreproduction output; synchronization control means for transmittingsynchronization control signals to synchronization processing means, inaccordance with the clock signal, at timings specified by timingspecifying information items included in the synchronization timinginformation items, respectively; and the synchronization processingmeans for carrying out a process in accordance with each of thesynchronization control signals received from the synchronizationcontrol means.

Further, a method, according to the present invention, for controlling areproducing apparatus including data acquiring means, decoding means,and synchronization processing means, includes the steps of: causing thedata acquiring means to acquire content data and synchronization timinginformation; causing the decoding means to (i) convert, in accordancewith the clock signal, the content data into reproduction data forreproduction output, and (ii) send a synchronization control signal tothe synchronization processing means in accordance with the clock signalat a timing specified by timing specifying information included in thesynchronization timing information; and causing the synchronizationprocessing means to carry out a process in accordance with thesynchronization control signal.

The above arrangements make it possible to supply, to thesynchronization processing means, the synchronization control signal(trigger) that specifies the timing at which the process is carried out.The supply of the synchronization control signal is carried out insynchronization with the reproduction process that the decoding meanscarries out with respect to the content data. Here, examples of the“process” to be carried out by the synchronization processing meansinclude: a process of controlling data outputting, a process ofexecuting a program, and the like. The other examples of the “process”include: a process of making access to a network, a process of readingout from and writing in a recording medium, and the like.

This makes it easier to (i) carry out a process to be carried out insynchronization with the reproduction process of the content data, andto be carried out concurrently with the supply of the content data; and(ii) add a process to be carried out in synchronization with thereproduction process of the content data, and to be carried out afterthe supply of the content data. Further, the stream synchronizationprocessing means does not need to check the reproduction clock of thedecoding means, so that no load is imposed for the synchronization onthe synchronization processing means. This makes it possible to flexiblycreate a content.

The reproducing apparatus according to the present invention may bearranged such that: the data acquiring means further acquiressynchronization executing programs, and the synchronization processingmeans includes program executing means for executing each of thesynchronization executing programs in accordance with thesynchronization control signal received from the synchronization controlmeans.

The above arrangement makes it possible to supply, to thesynchronization processing means, the synchronization control signal(trigger) that specifies the timing at which the output data isgenerated by executing the synchronization executing program. The supplyof the synchronization control signal is carried out in synchronizationwith the reproduction process that the decoding means carries out withrespect to the content data.

Accordingly, the synchronization processing means does not need to checkthe reproduction clock of the decoding means, so that no load is imposedfor the synchronization on the synchronization processing means. Thismakes it possible to effectively execute a program in synchronizationwith reproduction of AV data or the like.

The reproducing apparatus may further include: output generating meansfor generating second output data which is an output other than thereproduction data, wherein: the synchronization processing meansincludes output control means for controlling outputting of the secondoutput data in accordance with the synchronization control signalreceived from the synchronization control means.

The above arrangement makes it possible to control the outputting of thesecond output data which is outputted in synchronization with thereproduction process that the decoding means carries out with respect tothe content data. Here, the examples of the “second output data”generated by the output generating means include: (i) graphics datagenerated by executing a program, and (ii) data obtained by decodingbitmap data multiplexed in the video data. Further, the second outputdata is not limited to such a visual information output. That is, theother examples of the “second output data” include an auditoryinformation output such as (i) audio data generated by executing aprogram, and (ii) data obtained by decoding audio data multiplexed invideo data.

Accordingly, the synchronization processing means does not need to checkthe reproduction clock of the decoding means, so that no load is imposedfor the synchronization on the synchronization processing means. Thisallows the reproducing apparatus to efficiently control outputting of AVdata in synchronization with reproduction of different AV data or thelike.

For example, in the case of starting/ending display of a graphics at aspecific timing in the video reproduction, the clock does not need to bechecked by using the software constituting the synchronizationprocessing means, so that no overhead occurs due to the process. Thismakes it possible to coincide the timings at a frame rate. In otherwords, high-precision control can be carried out. The arrangement isexcellent also in terms of process efficiency.

Further, the reproducing apparatus according to the present inventionmay be arranged such that the synchronization processing means executesthe synchronization executing program so as to generate output data, andoutputs the output data in accordance with the synchronization controlsignal received from the synchronization control means.

The above arrangement makes it easier to display a graphics, by usingthe synchronization executing program, in synchronization with thereproduction process that the decoding means carries out with respect tothe content data. Moreover, the above arrangement makes it possible toefficiently carry out the display of the graphics.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: the synchronization processing means executesthe synchronization executing program, in accordance with thesynchronization control signal received from the synchronization controlmeans, so as to generate output data, and outputs the output data.

The above arrangement makes it easier to display a graphics, by usingthe synchronization executing program, in synchronization with thereproduction process that the decoding means carries out with respect tothe content data. Moreover, the above arrangement makes it possible toefficiently carry out the display of the graphics.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: the synchronization processing means includesoutput control means for controlling the outputting of the output datain accordance with the synchronization control signal received from thesynchronization control means, which outputting is caused by thesynchronization control program.

With this arrangement, in the case of starting/ending display of agraphics at a specific timing in the video reproduction, the clock doesnot need to be checked by using the software constituting thesynchronization processing means, so that no overhead occurs due to theprocess. This makes it possible to coincide the timings at a frame rate.In other words, high-precision control can be carried out. Thearrangement is excellent also in terms of process efficiency.

Note that, a reproducing apparatus according to the present inventionmay include: data acquiring means for acquiring content data, asynchronization executing program, and synchronization timinginformation items; clock generating means for generating a clock signal;decoding means for converting, in accordance with the clock signal, thecontent data into reproduction data for reproduction output;synchronization control means for transmitting synchronization controlsignals to synchronization processing means, in accordance with theclock signal, at timings specified by timing specifying informationitems included in the synchronization timing information items,respectively; and the synchronization processing means for generatingoutput data by executing the synchronization executing program, and foroutputting the output data in accordance with each of thesynchronization control signals received from the synchronizationcontrol means.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means and synchronizationprocessing means may include the steps of: (a) acquiring content data, asynchronization executing program, and synchronization timinginformation items; (b) causing the decoding means to (i) convert, inaccordance with a clock signal, the content data into reproduction datafor reproduction output, and (ii) transmit synchronization controlsignals to synchronization processing means, in accordance with theclock signal, at timings specified by timing specifying informationitems included in the synchronization timing information items,respectively; and (c) causing the synchronization processing means to(i) generating output data by executing the synchronization executingprogram, and (ii) output the output data in accordance with each of thesynchronization control signals received from the synchronizationcontrol means.

The above arrangement makes it possible to supply, to thesynchronization processing means, each synchronization control signal(trigger) that specifies the timing at which the result (output data)obtained by executing the synchronization executing program isoutputted. The supply of the synchronization control signal is carriedout in synchronization with the reproduction process that the decodingmeans carries out with respect to the content data.

Accordingly, the synchronization processing means does not need to checkthe reproduction clock of the decoding means, so that no load is imposedfor the synchronization on the synchronization processing means. Thismakes it possible to effectively execute a program in synchronizationwith reproduction of AV data or the like.

For example, in the case of starting/ending display of a graphics at aspecific timing in the video reproduction, the clock does not need to bechecked by using the software constituting the synchronizationprocessing means, so that no overhead occurs due to the process. Thismakes it possible to coincide the timings at a frame rate. In otherwords, high-precision control can be carried out. The arrangement isexcellent also in terms of process efficiency.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data, asynchronization executing program, and synchronization timinginformation items; clock generating means for generating a clock signal;decoding means for converting, in accordance with the clock signal, thecontent data into reproduction data for reproduction output;synchronization control means for transmitting synchronization controlsignals to synchronization processing means, in accordance with theclock signal, at timings specified by timing specifying informationitems included in the synchronization timing information items,respectively; and the synchronization processing means for generatingoutput data by executing the synchronization executing program inaccordance with each of the synchronization control signals receivedfrom the synchronization control means, and for outputting the outputdata.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means and synchronizationprocessing means may include the steps of: (a) acquiring content data, asynchronization executing program, and synchronization timinginformation items; (b) causing the decoding means to (i) convert, inaccordance with a clock signal, the content data into reproduction datafor reproduction output, and (ii) transmit synchronization controlsignals to synchronization processing means, in accordance with theclock signal, at timings specified by timing specifying informationitems included in the synchronization timing information items,respectively; and (c) causing the synchronization processing means to(i) generating output data by executing the synchronization executingprogram in accordance with each of the synchronization control signalsreceived from the synchronization control means, and (ii) output theoutput data.

The above arrangement makes it possible to supply, to thesynchronization processing means, the synchronization control signal(trigger) that specifies the timing at which the output data isgenerated by executing the synchronization executing program. The supplyof the synchronization control signal is carried out in synchronizationwith the reproduction process that the decoding means carries out withrespect to the content data.

Accordingly, the synchronization processing means does not need to checkthe reproduction clock of the decoding means, so that no load is imposedfor the synchronization on the synchronization processing means. Thismakes it possible to effectively execute a program in synchronizationwith reproduction of AV data or the like.

For example, in the case of starting/ending display of a graphics at aspecific timing in the video reproduction, the clock does not need to bechecked by using the software constituting the synchronizationprocessing means, so that no overhead occurs due to the process. Thismakes it possible to coincide the timings at a frame rate. In otherwords, high-precision control can be carried out. The arrangement isexcellent also in terms of process efficiency.

Note that the data acquiring means may be either (i) means for readingout the content data, the synchronization executing program, and thesynchronization timing information from the content recording medium, or(ii) communication means for acquiring the content data, thesynchronization executing program, and the synchronization timinginformation via a network. In other words, the supply of the video data,the program, and the synchronization timing information to thereproducing apparatus can be carried out in various manners. Forexample, the reproducing apparatus may read out the video data, theprogram, and the synchronization timing information from the contentrecording medium. Alternatively, any one of the video data, thesynchronization executing program, and the synchronization timinginformation may be acquired via the network, and may be combined withthe other data read out from the content recording medium, with theresult that the reproduction is carried out. Further, a part or all ofthe synchronization executing programs stored in the content recordingmedium may be replaced with programs acquired via the network for thesake of the reproduction. Further, a part or all of the content datastored in the content recording medium may be replaced with content dataacquired via the network for the sake of the reproduction. Further, apart or all of the synchronization timing information stored in thecontent recording medium may be replaced with synchronization timinginformation acquired via the network for the sake of the reproduction.

Further, examples of the program include: (i) a program for generatingdata of an image (still image; animation) to be overlaid with a videoimage, (ii) a program for outputting only a sound such as a sound effector narration.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: the synchronization processing means includesprogram executing means for generating output data by executing thesynchronization executing program in accordance with the synchronizationcontrol signal received from the synchronization control means.

The above arrangement makes it possible to execute the synchronizationexecuting program in accordance with the synchronization control signalgenerated in accordance with the clock signal used for the reproductionof the content data. Accordingly, the output data can be generated byexecuting the synchronization executing program in synchronization withthe reproduction of the content data.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: the synchronization processing means includesoutput control means for outputting, in accordance with thesynchronization control signal received from the synchronization controlmeans, the output data generated by using the program executing means.

The above arrangement makes it possible to output, in accordance withthe synchronization control signal generated in accordance with theclock signal used for the reproduction of the content data, the outputdata generated by using the synchronization executing program.Accordingly, the output caused by the synchronization executing programcan be controlled in accordance with the reproduction of the contentdata.

The reproducing apparatus according to the present invention may bearranged such that: the synchronization timing information itemsincluding the timing specifying information items includes actionspecifying information items, respectively and when respectivelytransmitting the synchronization control signals to the programexecuting means at the timings specified by the timing specifiedinformation items, the synchronization control means adds, to thesynchronization control signals, action specifying information itemscorresponding to the timing specifying information items, respectivelyand the program executing means executes a synchronization executingprogram specified by each of the action specifying information itemsincluded in the synchronization control signals received from thesynchronization control means.

The above arrangement allows the synchronization control means tocontrol the synchronization executing program at such a timing that theprogram executing means carries out the process. This makes it possiblethat the program executing means switchably executes a plurality ofsynchronization executing programs (instructions).

Further, the reproducing apparatus according to the present inventionmay be arranged such that: for starting reproduction from a certainpoint of the content data, the synchronization control means transmits,in accordance with synchronization timing information items respectivelyincluding timing specifying information items each indicating a timepoint coming before a time point from which the reproduction is started,the synchronization control signals in order from a synchronizationcontrol signal corresponding to earliest one of the time pointsrespectively specified by the timing specifying information items.

With the above arrangement, a video clock change occurring until thereproduction start time point of the content data does not need to beproduced again. This shortens time required in starting thereproduction.

The reproducing apparatus according to the present invention may bearranged such that: each of the synchronization timing information itemsrespectively including the timing specifying information items includesa dependency information item indicating a dependency relation withanother synchronization timing information item, for startingreproduction from a certain point of the content data, thesynchronization control means transmits the synchronization controlsignals in accordance with (I) a synchronization timing information itemthat includes a timing specifying information item indicating a timepoint which comes before but is closest to a time point from which thereproduction is started, and that includes a dependency information itemindicating that the synchronization timing information item isindependent from other synchronization timing information items, and(II) synchronization timing information items that include timingspecifying information items each indicating a time point which comesafter the time point specified by the synchronization timing informationitem (I), and that include dependency information items respectivelyindicating that the synchronization timing information items areindependent from other synchronization timing information items, thesynchronization control signals being transmitted in order from asynchronization control signal corresponding to earliest one of the timepoints respectively specified by the timing specifying informationitems.

The above arrangement makes it possible to immediately carry out theprocess when starting the reproduction from the certain point of thecontent data, so that unnecessary processes do not need to be carriedout. This makes it possible to shorten time required in displaying agraphics and starting the reproduction. Examples of the process include:the process of displaying a graphics corresponding to the reproductionstart time point, and the like.

The reproducing apparatus according to the present invention may bearranged such that: the data acquiring means acquires a mergedsynchronization executing program allowing a result identical to aresult obtained by executing a plurality of synchronization executingprograms, and each of the synchronization timing information itemsrespectively including the timing specifying information items includes(i) an action specifying information item indicating a synchronizationexecuting program to be executed, and (ii) a merged synchronizationexecuting program identifying information item indicating whether or notthe synchronization executing program indicated by the action specifyinginformation item is the merged synchronization executing program, andfor starting reproduction from a certain point of the content data, thesynchronization control means transmits the synchronization controlsignals in accordance with (I) a synchronization timing information itemthat includes a timing specifying information item specifying a timepoint which comes before but is closest to a time point from which thereproduction is started, and that includes a merged synchronizationexecuting program identifying information item indicating that thesynchronization executing program to be executed is the mergedsynchronization executing program, and (II) synchronization timinginformation items that include timing specifying information items eachindicating a time point which comes after the time point specified bythe synchronization timing information item (I), and that include mergedsynchronization executing program identifying information items eachindicating that the synchronization executing program to be executed isthe merged synchronization executing program, the synchronizationcontrol signals being transmitted in order from a synchronizationcontrol signal corresponding to earliest one of the time pointsrespectively specified by the timing specifying information items.

The above arrangement makes it possible to immediately carry out theprocess when starting the reproduction from the certain point of thecontent data, so that unnecessary processes do not need to be carriedout. This makes it possible to shorten time required in displaying agraphics and starting the reproduction. Examples of the process include:the process of displaying a graphics corresponding to the reproductionstart time point, and the like.

The reproducing apparatus according to the present invention may bearranged such that: the data acquiring means acquires an arbitrary-pointreproduction synchronization executing program, which is executed onlywhen starting reproduction from a certain point of the content data, andeach of the synchronization timing information items respectivelyincluding the timing specifying information items includes (i) an actionspecifying information item indicating a synchronization executingprogram to be executed, and (ii) an arbitrary-point reproductionsynchronization executing program identifying information itemindicating whether or not the synchronization executing programspecified by the action specifying information is the arbitrary-pointreproduction synchronization executing program, and for startingreproduction from a certain point of the content data, thesynchronization control means transmits the synchronization controlsignals in accordance with (I) a synchronization timing information itemthat includes a timing specifying information item indicating a timepoint which comes before but is closest to a time point from which thereproduction is started, and that includes an arbitrary-pointreproduction synchronization executing program identifying informationitem indicating that the synchronization executing program to beexecuted is the arbitrary-point reproduction synchronization executingprogram, and (II) synchronization timing information items that includetiming specifying information items each indicating a time point whichcomes after the time point specified by the synchronization timinginformation item (I), and that include arbitrary-point reproductionsynchronization executing program identifying information items eachindicating that the synchronization executing program to be executed isthe arbitrary-point reproduction synchronization executing program, thesynchronization control signals being transmitted in order from asynchronization control signal corresponding to earliest one of the timepoints respectively specified by the timing specifying informationitems.

The arrangement makes it possible to select an interruption process inaccordance with the reproduction start time point, with the result thata process can be carried out in accordance with the reproductioncondition. For example, special graphics is displayed only when startingthe reproduction from the certain time point. This allows the user toenjoy the content repeatedly, with the result that an additional valueof the content is improved.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: each of the synchronization timinginformation items includes an execution condition information itemindicating a condition in which the decoding means is when thesynchronization executing program should be executed, and thesynchronization control means monitors the condition of the decodingmeans, and transmits the synchronization control signal in accordancewith (i) the condition of the decoding means and (ii) the executioncondition information item.

The above arrangement makes it possible to select an interruptionprocess in accordance with the reproduction condition, with the resultthat a process can be carried out in accordance with the reproductioncondition. For example, a special graphics is displayed only during thefast forwarding. This allows the user to enjoy the content repeatedly,with the result that an additional value of the content is improved.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: the decoding means reproduces video data asthe content data in order to output a video image, and the programexecuting means executes, as the synchronization executing program, aprogram for generating image data to be overlaid with the video image.

The above arrangement makes it possible to overlay (i) the video imagereproduced by the decoding means, with (ii) the image data generated byusing the program executing means. The overlaying is carried out insynchronization with the reproduction of the video image. Note that theimage data generated by using the program executing means may be eithera still image or an animation.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data and asynchronization executing program; program executing means for executingthe synchronization executing program; clock generating means forgenerating a clock signal; decoding means for converting, in accordancewith the clock signal, the content data into reproduction data forreproduction output; synchronization control means for transmitting asynchronization control signal to the program executing means at apredetermined timing in accordance with the clock signal; and inputmeans for receiving reproduction control manipulation from outside, andfor converting the reproduction control manipulation into reproductioncontrol information, the decoding means being controlled in accordancewith the reproduction control information sent from the input means, theprogram executing means executing the synchronization executing programin accordance with at least the synchronization control signal sent fromthe synchronization control means.

Further, a method, according to the present invention, for controlling areproducing apparatus including data acquiring means, program executingmeans, clock generating means, decoding means, synchronization controlmeans, and input means, may include the steps of: (A) causing the dataacquiring means to acquire content data and a synchronization executingprogram; (B) causing the program executing means to execute thesynchronization executing program; (C) causing the clock generatingmeans to generate a clock signal; (D) causing the decoding means toconvert, in accordance with the clock signal, the content data intoreproduction data for reproduction output; (E) causing thesynchronization control means to transmit a synchronization controlsignal to the program executing means at a predetermined timing inaccordance with the clock signal; and (F) causing the input means to (i)receive reproduction control manipulation from outside, and (ii) convertthe reproduction control manipulation into reproduction controlinformation, in the step (D), the decoding means being controlled inaccordance with the reproduction control information sent from the inputmeans, in the step (B), the program executing means executing thesynchronization executing program in accordance with at least thesynchronization control signal sent from the synchronization controlmeans.

The above arrangements make it possible to (i) execute thesynchronization executing program in synchronization with thereproduction of the content data; and (ii) control the contentreproduction, without using the synchronization executing program, inaccordance with the reproduction control manipulation (user'smanipulation) supplied from outside. This eliminates the overheadoccurring when the synchronization executing program is used for thecontrol of the content reproduction, with the result that responsivenessto the user's reproduction control manipulation can be improved.

Here, the “predetermined timing” at which the synchronization controlmeans sends the synchronization control signal to the program executingmeans corresponds to, e.g., either (i) a timing at which thereproduction of the content data is ended, or (ii) a timing specified bythe synchronization timing information.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data items,synchronization executing programs, and program management informationitems; decoding means for converting each of the content data items toreproduction data for reproduction output; and program executing meansfor executing each of the synchronization executing programs, each ofthe program management information items including (i) a programspecifying information item for specifying a program to besimultaneously used for the reproduction output together with a contentdata item, and (ii) a content data specifying information item forspecifying the content data item to be simultaneously used for thereproduction output together with the program, said reproducingapparatus, further comprising: general control means for (i) instructingthe program executing means to execute the synchronization executingprogram specified by the program specifying information item, and either(ii) instructing the decoding means to convert the content data itemspecified by the content specified information item, or (iii)instructing the data acquiring means to acquire the content data itemspecified by the content specifying information item.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means, program executing means,and data acquiring means, may include the steps of: causing the dataacquiring means to acquire content data items, synchronization executingprograms, and program management information items; causing decodingmeans to convert each of the content data items to reproduction data forreproduction output; and causing the program executing means to executeeach of the synchronization executing programs, each of the programmanagement information items including (i) a program specifyinginformation item for specifying a program to be simultaneously used forthe reproduction output together with a content data item, and (ii) acontent data specifying information item for specifying the content dataitem to be simultaneously used for the reproduction output together withthe program, the method, further including the step of: instructing theprogram executing means to execute the synchronization executing programspecified by the program specifying information item, and either (ii)instructing the decoding means to convert the content data itemspecified by the content specified information item, or (iii)instructing the data acquiring means to acquire the content data itemspecified by the content specifying information item.

The above arrangements make it possible that the readout of the contentdata item from the medium, the decoding thereof, the reproductionthereof are carried out independently from the execution of thesynchronization executing program, with the result that time required instarting the reproduction of the content data item can be shortened.Especially, the content data item can be read out prior to thecompletion of the synchronization executing program by instructing thedata acquiring means to acquire the content data item. Note that, in theabove arrangement, the synchronization executing program is not limitedto a program for generating the output data.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: each of the program management informationitems includes a reproduction start instruction necessity informationitem indicating whether or not an instruction from a synchronizationexecuting program is required for start of reproduction of each of thecontent data items, and in cases where the reproduction start necessityinformation indicates that the instruction from the synchronizationexecuting program is required, the decoding means do not startreproducing the content data item until the decoding means receives theinstruction from the synchronization executing program.

The above arrangement makes it possible that the readout of the contentdata item from the medium, the decoding thereof, the reproductionthereof are carried out independently from the execution of thesynchronization executing program, with the result that time required instarting the reproduction of the content data item can be shortened.Moreover, the above arrangement makes it possible to coincide (i) aphase of starting the execution of the synchronization executing programwith (ii) a phase of starting the reproduction of the content data.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data, asynchronization executing program, and program management information;decoding means for converting the content data into reproduction datafor reproduction output; program executing means for executing thesynchronization executing program; input means for receivingreproduction control manipulation from outside, and for converting thereproduction control manipulation into reproduction control information;and switching means for (a) selecting, in accordance with reproductioncontrol switching information included in the program managementinformation, either one of (i) the reproduction control information sentfrom the input means and (ii) reproduction control information sent fromthe program executing means, and (b) sending the selected reproductioncontrol information to the decoding means.

The above arrangement makes it possible to switchably carry out (i) thereproduction control to be done by user and (ii) the reproductioncontrol to be done by the synchronization executing program. This allowsthe content creator to select whether (i) responsiveness to thereproduction control manipulation carried out by the user is taken intogreat consideration, or (ii) freedom in the program takes priority overthe responsiveness. Note that, in the above arrangement, thesynchronization executing program is not limited to a program forgenerating output data.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data, asynchronization executing program, and program management information;decoding means for converting the content data into reproduction datafor reproduction output; program executing means for executing thesynchronization executing program; and general control means forsuspending the reproduction output obtained by using the content dataand the synchronization executing program, and for resuming thereproduction from a point at which the reproduction output wassuspended; the program management information including resumingcapability information indicating whether or not a resuming function isenabled, which resuming function is a function for resuming thereproduction from the point at which the reproduction output obtained byusing the content data and the synchronization executing program wassuspended, in cases where the program management information indicatesthat the resuming function is not enabled, the general control meansnever instructing start of the reproduction from the point at which thereproduction output was suspended.

With the above arrangement, no resuming is carried out with respect to acontent whose reproduction cannot be resumed, with the result that theoperation of the reproducing apparatus becomes stable and the userbecomes less confused.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data, asynchronization executing program, and program management information;decoding means for converting the content data into reproduction datafor reproduction output; and program executing means for executing thesynchronization executing program, the program management informationincluding resuming capability information whether or not a resumingfunction is enabled, which resuming function is a function for resumingthe reproduction from the point at which the reproduction outputobtained by using the content data and the synchronization executingprogram was suspended, the reproducing apparatus, further including:notifying means for notifying, in cases where the resuming capabilityinformation indicates that the resuming function is not enabled, a userthat the resuming function is not enabled, the notifying being carriedout in response to any one of a user's suspending instruction, a user'sinstruction requiring suspending, and an instruction for resumingreproduction from a suspension point.

The arrangement makes it possible that: upon reception of the user'ssuspending instruction, the user's instruction requiring suspending, andthe instruction for resuming reproduction from the suspension point, awarning message or the like can be given to the user before carrying outthe operations corresponding to the user's instructions. This allows theuser to be less confused.

Examples of the instructions for the operations include: (i) the user'smenu calling-up instruction, and (ii) the user's instruction ofreturning from the menu to the previous reproduction state. The abovearrangement is particularly suitable for these instructions. Thenotifying means carries out the notification by, e.g., blinking a lamp,making a warning sound, or displaying a message on a display screen.Note that, in the above arrangement, the synchronization executingprogram is not limited to a program for generating output data.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data items, asynchronization executing program, and program management information;decoding means for converting each of the content data items intoreproduction data for reproduction output; and program executing meansfor executing the synchronization executing program, the programmanagement information including at least content data specifyinginformation for specifying a content data item which is simultaneouslyused for the reproduction output together with the synchronizationexecuting program, the reproducing apparatus, further including:verifying means for verifying whether or not the content data item whichthe synchronization executing program instructs the decoding means todecode is the content data item specified by the program managementinformation.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means, program executing means,data acquiring means, and verifying means, may include the steps of:causing the data acquiring means to acquire content data items, asynchronization executing program, and program management information;causing the decoding means to convert each of the content data itemsinto reproduction data for reproduction output; and causing the programexecuting means to execute the synchronization executing program, theprogram management information including at least content dataspecifying information for specifying a content data item which issimultaneously used for the reproduction output together with thesynchronization executing program, the method, further including thestep of: causing the verifying means to verify whether or not thecontent data item which the synchronization executing program instructsthe decoding means to decode is the content data item specified by theprogram management information.

The above arrangements make it possible to verify whether or not thecontent data item to be reproduced by using the synchronizationexecuting program is the content data item specified by the content dataspecifying information. This makes it possible to detect a reproductionoperation carried out by a program that is not approved to reproduce thecontent data, with the result that the content data can be preventedfrom being reproduced without authorization. Note that, in the abovearrangements, the synchronization executing program is not limited to aprogram for generating output data.

Further, the following can be attained by arranging the reproducingapparatus such that the synchronization executing program can reproduceonly the content data item specified (declared) by the content dataspecifying information of the content management information. That is,the copyright holder of the content data item does not need to executethe synchronization executing program so as to check unauthorized use ofthe content data. In other words, the copyright holder of the contentdata item can check the unauthorized use of the content data by merelychecking the static information, i.e., the content data specifyinginformation provided outside the synchronization executing program.

Further, a reproducing apparatus according to the present invention mayinclude: data acquiring means for acquiring content data items, asynchronization executing program, program management information, andverification-use information; decoding means for converting each of thecontent data items into reproduction data for reproduction output; andprogram executing means for executing the synchronization executingprogram, the program management information including at leastauthorization information which approves use of a content data item thatis simultaneously used for the reproduction output together with thesynchronization executing program, the reproducing apparatus, furtherincluding: verifying means for verifying, by using the verification-useinformation, authorization information of the content data item whichthe synchronization executing program instructs the decoding means todecode.

Further, a method, according to the present invention, for controlling areproducing apparatus including decoding means, program executing means,data acquiring means, and verifying means may include the steps of:causing the data acquiring means to acquire content data items, asynchronization executing program, program management information, andverification-use information; causing the decoding means to convert eachof the content data items into reproduction data for reproductionoutput; and causing the program executing means to execute thesynchronization executing program, the program management informationincluding at least authorization information which approves use of acontent data item that is simultaneously used for the reproductionoutput together with the synchronization executing program, thereproducing apparatus, further including: verifying means for verifying,by using the verification-use information, authorization information ofthe content data item which the synchronization executing programinstructs the decoding means to decode.

The above arrangements make it possible to verify, by using theverification-use information, whether or not the reproduction is carriedout by using a synchronization executing program having programmanagement information onto which appropriate authorization informationis recorded. This makes it possible to verify whether or not thereproduction of the content data item is approved by the copyrightholder of the content data item, which reproduction is carried out withthe use of the currently executed synchronization executing program.This makes it possible to detect a reproduction operation carried out bya program that is not approved to reproduce the content data item, withthe result that the content data item can be prevented from beingreproduced without authorization. Note that the synchronizationexecuting program is not limited to a program for generating the outputdata for use in the reproduction output. Note that, in the abovearrangements, the synchronization executing program is not limited to aprogram for generating output data.

Further, it is preferable to arrange the reproducing apparatus accordingto the present invention such that: the verifying information is apublic key, and the authorization information is information obtained byencrypting information specific to the synchronization executing programby using a private key corresponding to the public key, and theverifying means decrypts the authorization information by using theverification-use information, and carries out verification in accordancewith a result obtained through the decrypting. Used as the “informationspecific to the synchronization executing program” can be (i) a code ofthe synchronization program, and (ii) a hash value obtained by carryingout a hash process with respect to the code of the synchronizationprogram.

Further, the reproducing apparatus according to the present inventionmay be arranged such that: in cases where the authorization informationis not so confirmed as to be appropriate as a result of the verificationcarried out by the verifying means, the program executing meansterminates the execution of the synchronization executing program.

The arrangement makes it possible to prevent the content data item frombeing intentionally reproduced by the program which is not approved toreproduce the content data item, or from being reproduced by a bug ofthe program which is not approved to reproduce the content data item.

Note that the reproducing apparatus may be realized by a computer. Inthis case, the present invention encompasses (i) a control program forcausing a computer to operate as the aforementioned various means,particularly the synchronization control means and the synchronizationprocessing means, so that the reproducing apparatus is realized by thecomputer; and (ii) a computer-readable recording medium storing thecontrol program.

Further, a content recording medium according to the present inventionmay be so arranged as to store at least any one of content data, asynchronization executing program, and synchronization timinginformation such that the content data, the synchronization executingprogram, and the synchronization timing information are able to besupplied to the reproducing apparatus.

Further, a content recording medium according to the present inventionmay be so arranged as to store content data and synchronization timinginformation such that the content data and the synchronization timinginformation are able to be supplied to the reproducing apparatus, thesynchronization timing information being separated from the contentdata.

With the arrangement, the content data (video data) and thesynchronization timing information are separately managed. This makes iteasier to share one content data with a plurality of synchronizationexecuting programs. Further, the synchronization timing information andeach of the synchronization executing programs are managed as differentfiles, so that the synchronization executing program does not need to berewritten even in cases where the video data is edited after creatingthe program.

Further, a content recording medium may be so arranged as to store asynchronization executing program and synchronization timing informationsuch that the synchronization executing program and the synchronizationtiming information are able to be supplied to the reproducing apparatus,the synchronization timing information being stored in a vicinity of thesynchronization executing program.

With the above arrangement, the pickup travels only a short distance soas to read out these data when executing the synchronization executingprogram. This makes it possible to (i) shorten latency time required instarting the reproduction, and (ii) prevent discontinuity of the videoreproduction, and (iii) restrain increase of power consumption andoccurrence of noise.

Further, a content recording medium according to the present inventionmay be so arranged as to store a synchronization executing program andsynchronization timing information such that the synchronizationexecuting program and the synchronization timing information are able tobe supplied to the reproducing apparatus, the synchronization timinginformation and the synchronization executing program being stored in asame file.

The above arrangement makes it possible to reduce the number of files tobe read out, with the result that overhead occurring due to the readoutis reduced.

Further, a content recording medium according to the present inventionmay be so arranged as to store at least any one of content data, asynchronization executing program, and synchronization timinginformation such that the content data, the synchronization executingprogram, and the synchronization timing information are able to besupplied to the reproducing apparatus.

Further, a content recording medium according to the present inventionmay be so arranged as to store at least content data items, programmanagement information, and verification-use information items such thatthe content data items, the program management information, and theverification-use information items are able to be supplied to thereproducing apparatus, the program management information including atleast authorization information which approves use of a content dataitem that is simultaneously used for reproduction output together withthe synchronization executing program, the verification-use informationitems being included in the content data items, respectively.

Further, the content recording medium according to the present inventionmay be arranged such that the verification-use information items aremultiplexed in each of the content data items with predeterminedintervals therebetween.

With the arrangement, the pickup does not travel for the sake of readingout the verification-use information items, with the result that thelatency time required in starting the reproduction is shortened. Notethat the synchronization executing program may be stored in the contentrecording medium together with the content data items, the programmanagement information, and the verification-use information items.

Further, the content recording medium according to the present inventionmay be arranged such that: each of the content data items has (i) a partin which a verification-use information item of the verification-useinformation items is used, and (ii) a part in which a differentverification-use information item is used.

The above arrangement allows only the required part to be reproduced bythe program.

Further, a data structure according to the present invention mayinclude: a content data storing region for storing content data to bereproduced by a reproducing apparatus; a synchronization executingprogram storing region for storing a synchronization executing programto be executed by the reproducing apparatus in synchronization with thereproduction of the content data; and a synchronization timinginformation storing region for storing synchronization timinginformation indicating a timing at which the synchronization executingprogram is executed.

The arrangement allows realization of the content recording mediumstoring these data, with the result that these data can be supplied tothe reproducing apparatus with ease.

Further, a data structure according to the present invention mayinclude: a content data storing region for storing content data items tobe reproduced by a reproducing apparatus; a synchronization executingprogram storing region for storing synchronization executing programs tobe executed by the reproducing apparatus in synchronization with thereproduction of the content data items, respectively; and a programmanagement information storing region for storing program managementinformation items each including (i) a program specifying informationitem for specifying a program to be simultaneously used for reproductionoutput together with a content data item, and (ii) a content dataspecifying information item for specifying the content data item to besimultaneously used for the reproduction output together with theprogram.

The arrangement allows realization of the content recording mediumstoring these data, with the result that these data can be supplied tothe reproducing apparatus with ease.

Further, the data structure according to the present invention may bearranged such that: each of the program management information itemsincludes at least authorization information which approves use of thecontent data item that is simultaneously used for the reproductionoutput together with the synchronization executing program, and each ofthe content data items includes verification-use information forverifying the authorization information.

The arrangement allows realization of the content recording mediumstoring these data, with the result that these data can be supplied tothe reproducing apparatus with ease.

The embodiments and concrete examples of implementation discussed in theforegoing detailed explanation serve solely to illustrate the technicaldetails of the present invention, which should not be narrowlyinterpreted within the limits of such embodiments and concrete examples,but rather may be applied in many variations within the spirit of thepresent invention, provided such variations do not exceed the scope ofthe patent claims set forth below.

INDUSTRIAL APPLICABILITY

A reproducing apparatus of the present invention makes it possible toexecute a program in synchronization with reproduction of AV data or thelike. For this reason, the reproducing apparatus can be suitably usedfor a video player for overlaying, with currently reproduced video data,a graphic output generated by using a computer program; and the like.

The invention claimed is:
 1. A content reproducing apparatus forreproducing content data, comprising: a synchronization control sectionthat, (i) on a basis of first synchronization timing information that isindicative of a first time point in a time period during which thecontent data is reproduced and that is for use in synchronizationbetween (a) the reproduction of the content data and (b) execution of aprogram for generating bitmap data on an image to be so displayed as tobe overlaid with the content data being reproduced, transmits asynchronization control signal including information for specifying theprogram, and then (ii) on a basis of a second synchronization timinginformation that is indicative of a second time point of the time periodduring which the content data is reproduced and that is for use insynchronization between (a) the reproduction of the content data and (b)output of the bitmap data, carries out control for outputting the bitmapdata; a program executing section that, (i) each time the programexecuting section receives, from the synchronization control section,the synchronization control signal including the information forspecifying the program, carries out processing that (a) executes theprogram, specified by the information included in the synchronizationcontrol signal, to generate the bitmap data and (b) stores the bitmapdata, generated through the execution (a), in one of a plurality ofbuffer memories in such a manner that the bitmap data, generated throughthe execution (a), is in a one-to-one correspondence with a buffermemory, and thus (ii) stores the bitmap data in the plurality of buffermemories; and an output control section that, under the control by thesynchronization control section, (i) outputs the bitmap data stored in aspecified one of the plurality of buffer memories and thus (ii) displaysthe outputted bitmap data in such a manner that the outputted bitmapdata is overlaid with the content data being reproduced.
 2. Anon-transitory content recording medium on which (i) content data, (ii)a program for generating bitmap data on an image to be so displayed asto be overlaid with the content data being reproduced, and (iii)synchronizing timing information indicative of a time point in a timeperiod during which the content data is reproduced are stored, thesynchronization timing information including (i) first synchronizationtiming information for use in synchronization between (a) thereproduction of the content data and (b) execution of the program and(ii) second synchronization timing information for use insynchronization between (a) the reproduction of the content data and (b)output of the bitmap data, the first synchronization timing informationand the second synchronization timing information having a datastructure for causing a reproducing apparatus for reproducing therecording medium to execute the steps of: (A) transmitting, on a basisof the first synchronization timing information, a synchronizationcontrol signal including information for specifying the program; (B) (i)each time the reproducing apparatus receives the synchronization controlsignal transmitted in step (A), carrying out processing that (a)executes the program, specified by the information included in thesynchronization control signal, to generate the bitmap data and (b)stores the bitmap data, generated through the execution (a), in one of aplurality of buffer memories in such a manner that the bitmap data,generated through the execution (a), is in a one-to-one correspondencewith a buffer memory, and thus (ii) storing the bitmap data in theplurality of buffer memories; and (C) on a basis of the secondsynchronization timing information, (i) outputting the bitmap datastored in a specified one of the plurality of buffer memories and thus(ii) displaying the outputted bitmap data in such a manner that theoutputted bitmap data is overlaid with the content data beingreproduced.
 3. A method for reproducing a content on a contentreproducing apparatus which reproduces content data, the methodcomprising the steps of: (A) on a basis of first synchronization timinginformation that is indicative of a first time point in a time periodduring which the content data is reproduced and that is for use insynchronization between (a) the reproduction of the content data and (b)execution of a program for generating bitmap data on an image to be sodisplayed as to be overlaid with the content data being reproduced,transmitting a synchronization control signal including information forspecifying the program; (B) (i) each time the content reproducingapparatus receives the synchronization control signal transmitted instep (A) and including the information for specifying the program,carrying out processing that (a) executes the program, specified by theinformation included in the synchronization control signal, to generatethe bitmap data and (b) stores the bitmap data, generated through theexecution (a), in one of a plurality of buffer memories in such a mannerthat the bitmap data, generated through the execution (a), is in aone-to-one correspondence with a buffer memory, and thus (ii) storingthe bitmap data in the plurality of buffer memories; and (C) on a basisof second synchronization timing information that is indicative of asecond time point in the time period during which the content data isreproduced and that is for use in synchronization between (a) thereproduction of the content data and (b) output of the bitmap data, (i)outputting the bitmap data stored in a specified one of the plurality ofbuffer memories and thus (ii) displaying the outputted bitmap data insuch a manner that the outputted bitmap data is overlaid with thecontent data being reproduced.
 4. A non-transitory computer-readablerecording medium, on which a control program for causing a computer tooperate as a content reproducing apparatus which reproduces content datais stored, the control program causing the computer to execute the stepsof: (A) on a basis of first synchronization timing information that isindicative of a first time point in a time period during which thecontent data is reproduced and that is for use in synchronizationbetween (a) the reproduction of the content data and (b) execution of aprogram for generating bitmap data on an image to be so displayed as tobe overlaid with the content data being reproduced, transmitting asynchronization control signal including information for specifying theprogram; (B) (i) each time the content reproducing apparatus receivesthe synchronization control signal transmitted in the step (A) andincluding the information for specifying the program, carrying outprocessing that (a) executes the program, specified by the informationincluded in the synchronization control signal, to generate the bitmapdata and (b) stores the bitmap data, generated through the execution(a), in one of a plurality of buffer memories in such a manner that thebitmap data, generated through the execution (a), is in a one-to-onecorrespondence with a buffer memory, and thus (ii) storing the bitmapdata in the plurality of buffer memories; and (C) on a basis of secondsynchronization timing information that is indicative of a second timepoint in the time period during which the content data is reproduced andthat is for use in synchronization between (a) the reproduction of thecontent data and (b) output of the bitmap data, (i) outputting thebitmap data stored in a specified one of the plurality of buffermemories and thus (ii) displaying the outputted bitmap data in such amanner that the outputted bitmap data is overlaid with the content databeing reproduced.